Microsoft small business knowledge base

Article ID: 976025 - Last Review: January 22, 2010 - Revision: 1.0


In a Microsoft Exchange Server 2007 environment, you find that the free/busy information about an user is not displayed. Additionally, you set the Exchange Server Diagnostics Logging level for the Availability Service to one of the following three levels
  • Lowest
  • Low
  • Medium
When you do this, the following event is logged in the Application log:

Event ID : 4013
Raw Event ID : 4013
Category : None
Source : MSExchange Availability
Type : Error
Message : Process <ID>[w3wp.exe:/LM/W3SVC/1/ROOT/EWS-<ID>]: Calendar query failed for mailbox <user name>SMTP:<smtp address>. The returned exception is as follows: Microsoft.Exchange.InfoWorker.Common.Availability.Win32InteropException: A Win32 function returned an error. The inner exception may have more details. ---> System.ArgumentOutOfRangeException: Non-negative number required. Parameter name: count at System.IO.BinaryReader.ReadBytes(Int32 count) at Microsoft.Exchange.Data.Storage.InternalRecurrence.ReadExceptionInfoSubstring(Binary Reader blobReader, Int32 usingCodePageId) at Microsoft.Exchange.Data.Storage.InternalRecurrence.ParseExceptionInfo(BinaryReader blobReader, RecurrenceVersion recurrenceVersion, Int32 usingCodePageId) at Microsoft.Exchange.Data.Storage.InternalRecurrence.InternalParse(Byte[] blob, Item masterItem, VersionedId masterItemId, ExchangeTimeZone organizerTimeZone, ExchangeTimeZone userTimeZone, Boolean expectNoException, Int32 usingCodePageId) at Microsoft.Exchange.Data.Storage.InternalRecurrence.InternalParse(Byte[] blob, VersionedId masterItemId, ExchangeTimeZone organizerTimeZone, ExchangeTimeZone userTimeZone, Int32 usingCodePageId) at Microsoft.Exchange.Data.Storage.InternalRecurrence.GetRecurrence(VersionedId versionedId, StoreSession session, Byte[] recurrenceBlob, Byte[] organizerTimeZoneBlob, Int32 usingCodePageId) at Microsoft.Exchange.Data.Storage.CalendarFolder.GetRecurringCalendarItems(DateTime startTime, DateTime endTime, PropertyDefinition[] dataColumns) at Microsoft.Exchange.Data.Storage.CalendarFolder.GetCalendarView(DateTime startTime, DateTime endTime, QueryFilter filter, SortBy[] sortColumns, PropertyDefinition[] dataColumns) at Microsoft.Exchange.InfoWorker.Common.Availability.CalendarQuery.InternalGetCalendarData(EmailAddress emailAddress, MailboxSession session) at Microsoft.Exchange.InfoWorker.Common.Availability.CalendarQuery.GetCalendarData(EmailAddress emailAddress)


The error is caused by certain internal functions in Exchange Server 2007 that throw a wrong exception for a corrupted calendar item. Therefore, the free/busy information for certain users is not displayed.


To resolve this problem, install the following update rollup:
972076  ( ) Description of Update Rollup 2 for Exchange Server 2007 Service Pack 2


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.


For more information about how to change Logging Levels for Exchange Processes, visit the following Microsoft Web site: (

  • Microsoft Exchange Server 2007 Service Pack 2, when used with:
    • Microsoft Exchange Server 2007 Enterprise Edition
    • Microsoft Exchange Server 2007 Standard Edition
kbsurveynew kbhotfixrollup kbexpertiseinter kbfix kbqfe KB976025
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support