WinDeveloper O365 Mailer FREE for 1 Year

WinDeveloper IMF Tune
WinDeveloper IMF Tune

Working with Exchange 2010 Calendar Repair

Elie Bou Issa [BS. Computer Science, MCITP, MCTS, MCT]

Elie Bou Issa [BS. Computer Science, MCITP, MCTS, MCT] Photo

Elie has more than six years of experience dealing with various facets of IT and handling a wide range of software solutions. These include Exchange/Active Directory and other Microsoft platforms, such as Windows Server, SCCM, and SCOM, among others.

Cast your Vote
Poor Excellent

If you encountered calendar inconsistencies, with the new Calendar Repair Assistant you don’t need to worry any longer. Introduced in Exchange 2010, CRA fixes discrepancies between the meeting organizer and attendees.

Even though we didn't see any improvement on the Calendaring side in Exchange 2003, new features have been introduced in Exchange 2007. These included the Calendar attendant, which manages scheduling events; the resource booking attendant, where you can book rooms or equipment without anyone's intervention, and the scheduling assistant, which provides guidance on scheduling meetings efficiently as well as Out Of Office messages.

In Exchange 2010, features introduced in Exchange 2007 have been improved and a feature named Calendar Repair Assistant (CRA) has been added. The interesting aspect about CRA is that, most of the time it runs without any user/administrator intervention. This simplifies collaboration within an organization.

Calendar Repair Assistant Overview

Experience teaches us that most calendar inconsistencies are encountered at the client's side. In this respect, some software applications and utilities were developed by a third party to fix and retrieve changes or deletions from the calendar folder.

In Exchange 2010, the Calendar Repair Assistant was developed to work on the mailbox server side. CRA runs within the Exchange Mailbox Assistant service and detects and fixes any discrepancies using a special algorithm for comparing the organizer's and the attendee's items respectively. Most importantly, CRA runs in silent mode on the user's outlook calendar, meaning that the user will only be notified about adjustments in his/her calendar items. CRA is configured to run by default on every mailbox but can also be disabled for specific user accounts.

In this article, we will see how to configure CRA settings and log files. We will then see the CRA's behavior toward missing calendar items.

CRA Usage

CRA can be configured to run on a specific time schedule. When CRA runs, it compares the organizer's calendar item to the attendee's calendar item by running consistency checks. If any of the organizer's/attendee's check operations fails due to inconsistencies, a fix is performed on the respective calendar item. Corrections are merged so as not to override item properties or data. An E-mail describing what was fixed is then placed in the attendee's deleted items folder.

The issues that CRA is able to correct are listed below:

  • Attendee's calendar item has the wrong time or location
  • Attendee's/organizer's item has the wrong location
  • Attendee is not on the organizer's attendees list
  • Attendee's calendar item tracking status doesn't match the organizer's tracking status
  • Attendee's recurring meeting doesn't match the organizer's recurring meeting
  • Organizer or attendee has multiple calendar meetings that appear to be the same

When CRA runs for the first time, a Calendar Repair Assistant folder is created under the path:
%SystemDrive%\Program Files\Microsoft\Exchange Server\V14\Logging\

This is used to store CRA log files.

Any changes made to the user's mailbox calendar items are logged by default to a log file. To get the CRA's log properties, run the following cmdlet:
Get-MailboxServer -Identity Exchange | FL calendarRepairLog*

The output is shown below:

Figure 1.0 CRA log settings

Figure 1.0 CRA log settings

You can configure any of the log properties shown in figure 1. For instance, the log file age limit is set by default to an unlimited number of days and the directory size limit to an unlimited storage size. If you wish to limit the age to 65 days and the directory size to 150MB, run the cmdlet:
Set-MailboxServer -Identity Exchange -CalendarRepairLogFileAgeLimit 65 -CalendarRepairLogDirectorySizeLimit 150MB

By running again the Get cmdlet, you will see the new settings.

Figure 1.1 Configuring CRA log settings

Figure 1.1 Configuring CRA log settings

As mentioned earlier, CRA can be configured to run on a specific schedule. By default, the calendar repair schedule is not configured and won't run unless a schedule is set.

To have CRA run on Thursday between 3:26 PM and 3:40 PM, run the cmdlet:
Set-MailboxServer -Identity Exchange -CalendarRepairSchedule "Thursday.3:26 PM-Thursday.03:40 PM"

You can also select more than one schedule by setting multiple time ranges in a comma separated list:
Set-MailboxServer -Identity Exchange -CalendarRepairSchedule "Thursday.3:26 PM-Thursday.03:40 PM", "Friday.3:26 PM- Friday.03:40 PM"

If mailbox processing is not completed within the defined schedule window, CRA pauses and resumes from the same location the next time it runs.

Let us consider an item that has been accidentally deleted from a user's mailbox. Once CRA is run, Calendar Repair Missing Item Fix is executed. The item is recreated and marked as tentatively accepted (even though the user could have accepted the meeting before deletion).

The calendar item will contain a small description of the fixed issue as shown below:

Figure 1.2 Recovered calendar item

Figure 1.2 Recovered calendar item

In addition, an E-mail will be placed in the Deleted Items folder describing what was corrected. A sample E-mail is shown in figure 1.3:

Figure 1.3 E-mail describing corrections

Figure 1.3 E-mail describing corrections

Checking the logs, we can see that the steps to recreate the calendar item were logged under a file holding the organizer's name.

Figure 1.4 Log for recreating a missing calendar item

Figure 1.4 Log for recreating a missing calendar item

By default, repair item fix is enabled on the mailbox server but you can disable this feature for troubleshooting purposes by running the cmdlet:
Set-MailboxServer -Identity Exchange -CalendarRepairMissingItemFixDisabled $true

Finally, you can define the interval time you wish CRA to process. The default value is set to 30 days as shown below:

Figure 1.5 Calendar Repair Interval End Window

Figure 1.5 Calendar Repair Interval End Window

To have CRA fix settings for the coming 40 calendar days, run the cmdlet:
Set-MailboxServer -Identity Exchange -CalendarRepairIntervalEndWindow 90


The Calendar Repair Assistant is very useful and I highly recommend using this new feature. Errors and issues might occur on the user's calendar without his/her knowledge. By enabling Calendar Repair, system administrators and end-users will make sure that calendar items stay consistent.


Understanding Calendar Repair

User Comments - Page 1 of 1

AdminITS 12 Apr 2011 05:30
Please use the calendarrepaircycle and calendarrepaircyclecheckpoint parameter !
Shopy 18 Nov 2010 08:36
MRI - I am having the same issue. Have you found a solution?
MRI 12 Oct 2010 10:55
Hi - we seem to have Calendar Repair Assistant configured correctly, but it doesn't seem to run on it's schedule (no logs created) and I don't see anything show up in the event viewer for the time it's scheduled to run. Thoughts?
Copyright © 2005 - 2024 All rights reserved. is not affiliated with Microsoft Corporation