Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Topic Last Modified: 2012-11-15

The Calendar Repair Assistant is a configurable mailbox assistant that runs within the Microsoft Exchange Mailbox Assistants service on Microsoft Exchange Server 2010 Mailbox servers. The Calendar Repair Assistant detects and corrects inconsistencies with single and recurring meeting items for mailboxes located on that Mailbox server. As a result, recipients won't miss meeting announcements or have unreliable meeting information.

By default, the CRA is not set to run automatically. To configure the CRA to run and repair calendar inconsistencies, use the set-mailboxserver cmdlet in the Exchange Management Shell to set the work cycle and work cycle checkpoint. The Exchange Management Console cannot be used to configure calendar repair log settings.

Contents

Calendar Repair Assistant Tasks

Conflict Detection and Resolution

Calendar Repair Log

Client Application Experience

Looking for management tasks related to calendars? See Managing Calendars.

Calendar Repair Assistant Tasks

The Calendar Repair Assistant performs the following functions:

  1. Detects inconsistencies   The Calendar Repair Assistant uses the organizer's copy of the calendar item as a master copy for all meeting items. The assistant compares the attendee's calendar item with the organizer's calendar item for inconsistencies. The only exception to this rule is when the assistant compares the attendee's and organizer's response status. The assistant assumes that the attendee's response status is the correct one, and, if necessary, updates the organizer's tracking information.

  2. Determines if inconsistencies were intentional   If an inconsistency is detected, the Calendar Repair Assistant determines whether the attendee intentionally introduced the inconsistency. For example, an attendee can introduce an inconsistency by deleting the meeting request and not notifying the organizer. If the assistant determines that the attendee didn't introduce the inconsistency, it corrects the problem. If the assistant can't determine if the inconsistency was intentional, it performs no further action.

  3. Corrects inconsistencies   The Calendar Repair Assistant corrects inconsistencies on the Mailbox server on which it runs. However, if the organizer's mailbox is on a different server than the attendee's mailbox, the assistant reads from other Exchange 2010 Mailbox servers to compare the calendar items. The assistant doesn't overwrite the recipient's calendar information. Instead, it merges the information so data isn't lost. In addition, the repair update messages are moved to the recipient's Deleted Items folder. For more information about the inconsistencies detected and repaired, see Conflict Detection and Resolution later in this topic.

  4. Sends a calendar repair update message if a correction was made   Calendar repair update messages are sent to users whose calendar items were updated by the Calendar Repair Assistant. Instead of sending the message to the user's Inbox, the assistant sends the message to the user's Deleted Items folder. By doing so, a record of the repair is kept in the mailbox without causing user confusion. If the user is experiencing calendar inconsistencies, you can advise the user to look in the Deleted Items folder for troubleshooting purposes. The assistant only sends repair update messages if the issue is fixed.

For more information about configuring the Calendar Repair Assistant, see Managing Calendars.

Return to top

Conflict Detection and Resolution

The Calendar Repair Assistant detects and corrects the conflicts described in the following table.

Calendar Repair Assistant conflict resolution

Conflict Resolution

An attendee accepted the organizer's meeting request or recurring meeting request, but the meeting isn't on the attendee's calendar.

The assistant checks the attendee's record in the mailbox database and finds that the attendee deleted the calendar item without sending a response. If the assistant can't determine that the meeting item was intentionally deleted by the attendee, the assistant creates the meeting request again. If the assistant determines that the attendee intentionally deleted the meeting request, no further action is taken.

An attendee is missing an occurrence or exception within a recurring meeting series.

The assistant checks the organizer's copy for a deleted occurrence or exception and finds that the attendee deleted the meeting request without sending a response. If the assistant can't determine that the meeting item was intentionally deleted by the attendee, the assistant creates the meeting request again. If the assistant determines that the attendee intentionally deleted the occurrence or exception, no further action is taken.

An attendee's response status for the meeting doesn't match the status on the organizer's calendar item.

The assistant updates the organizer's tracking status with the status on the attendee's calendar item.

Attendees have the meeting on their calendars, but the organizer doesn't have those attendees listed in the attendee list.

The assistant adds the attendees to the organizer's list of attendees.

Note:
If the meeting request was sent to a distribution group with more than 200 members, the Calendar Repair Assistant won't add the attendees to the organizer's attendee list.

An attendee is listed on some of the organizer's recurring meetings, but the attendee's recurrence pattern doesn't match the organizer's recurrence pattern.

The assistant replaces the attendee's recurrence pattern with the organizer's recurrence pattern.

The location of an attendee's meeting doesn't match the location recorded in the organizer's calendar item.

If the attendee intentionally changed the meeting location, no action is taken. If the assistant can't determine that the location was intentionally changed by the attendee, the attendee's calendar item is appended with the meeting location on the organizer's calendar item.

An attendee's start or end time is different from that of the organizer's start or end time.

If the assistant determines that the attendee intentionally changed the time, no further action is taken. If the assistant determines that the conflict was unintentional, the start or end time is changed if either time differentiates more than two hours from the organizer's start or end time.

The organizer or attendee has multiple meetings that have the same MAPI property identifier: LIL_GLOBAL_OBJID.

The assistant compares all the duplicates and performs the following steps to correct the inconsistency:

  1. Checks the sequence numbers of all the duplicates. The duplicate with the highest sequence number is kept. The other meeting items are deleted.

  2. If the assistant can't determine which item to keep based on the sequence number, it checks the OwnerCriticalChangeTime property. If one of the duplicates is the most recent copy, it keeps that duplicate item. The other meeting items are deleted.

  3. If the assistant can't determine which item to keep based on the most recent copy, it checks the LastModifiedTime property. If one of the duplicates has the last modified time, the assistant keeps that duplicate item. The other meeting items are deleted.

  4. If the assistant can't determine which item to keep based on the last modified time, it keeps the first calendar item returned by the database when querying for duplicate meetings. The other meeting items are deleted.

An attendee has a single or recurring meeting on his or her calendar, but the organizer doesn't have this item on his or her calendar.

The assistant checks whether the organizer intentionally deleted the meeting. If the organizer intentionally deleted the meeting, the assistant sends a cancellation to the attendees. If the assistant determines that the organizer didn't intentionally delete the meeting, the meeting is added back to the organizer's calendar. If the assistant can't determine the organizer's intent, no action is performed.

Return to top

Calendar Repair Log

Every time the Calendar Repair Assistant changes a calendar item on a user's mailbox, it writes the change to a calendar repair log (.log) file. The output of this .log file doesn't reveal personal data, such as the body of the message or attachments. The file only contains the minimum information to identify the meeting that was repaired and what repair actions were taken. Each time the assistant runs, one calendar repair log file is created for every mailbox. By default, calendar repair logging is enabled.

The calendar repair log is configurable and can be turned on or off for a server or user. For more information, see Managing Calendars.

The default calendar repair log path is <Exchange Installation Path>\v14\Logging\Calendar Repair Assistant.

The log files are created with the following naming convention:

CRAYYYYMMDDHH-X.Alias.log

  • CRA = Calendar Repair Assistant prefix

  • YYYY = year

  • MM = month

  • DD = day

  • HH = hour

  • X = instance

  • Alias = mailbox alias

For example, the following repair log file indicates that a repair was made on Tony's mailbox on April 18, 2010, at 15:00 (3:00 P.M.), and that the repair was the third one made within that hour:

CRA2010041815-3.tony.log

Return to top

Client Application Experience

The Calendar Repair Assistant can't access the same data for all client applications. As a result, users may get a different experience depending on which client application they use to review mail. Therefore, the assistant may not be able to determine if the action made by the user was intentional. As previously stated, the assistant corrects conflicts only if it can successfully determine that the attendee didn't intentionally introduce the conflict. If the assistant can't make this determination, no further action is taken.

The following table lists the different end-user calendaring tasks that could result in a calendar conflict. Based on which client application was used, the Calendar Repair Assistant can determine the user's intent.

Calendaring tasks

Scenario Client application Property recorded

Organizer opens the calendar item and modifies its properties.

  • Microsoft Office Outlook Web App

  • Client applications that use Exchange Web Services

  • Mobile client applications that use Microsoft Exchange ActiveSync

ModifiedStartTime

ModifiedEndTime

ModifiedLocation

Organizer drags the meeting in his or her calendar view to a different time.

  • Outlook Web App

  • Client applications that use Exchange Web Services

Note:
This scenario isn't supported for client applications that use Exchange ActiveSync.

ModifiedStartTime

ModifiedEndTime

Attendee responds as either accepted or tentatively accepted with or without sending a response message to the organizer.

  • Outlook Web App

  • Client applications that use Exchange Web Services

  • Mobile client applications that use Exchange ActiveSync

RespondedAccepted

RespondedTentative

Attendee declines a meeting request with or without sending a response message to the organizer.

  • Outlook Web App

  • Client applications that use Exchange Web Services

  • Mobile client applications that use Exchange ActiveSync

DeletedWithNoResponse

RespondedDeclined

Attendee declines an instance of a recurring meeting request with or without sending a response message to the organizer.

  • Outlook Web App

  • Client applications that use Exchange Web Services

  • Mobile client applications that use Exchange ActiveSync

DeletedExceptionWithNoResponse

RespondedExceptionDecline

Organizer cancels a meeting.

  • Outlook Web App

  • Client applications that use Exchange Web Services

  • Mobile client applications that use Exchange ActiveSync

MeetingExceptionCanceled

Return to top