Monday, 7 May 2012

Exchange 2010 SP2 – Calendar Repair Assistant

Several email users complained about issues with their calendars so I decided to turn CRA on and see if it helps. CRA is supposed to detect inconsistencies in multiple copies of the same event across several calendars and fix potential issues. Here is the official explanation of it:
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 automatically 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.
Conflict detection and resolution is well explained here.

Here are a few useful commands:

Get global settings for all servers:
Get-MailboxServer | fl *calendar*

Check if calendar repair feature is on or off for a specific user:
Get-Mailbox username | fl CalendarRepairDisabled

Get all users with calendar repair feature on:
Get-Mailbox -Filter "CalendarRepairDisabled -eq `$false"

Disable calendar repair feature for all users:
Get-Mailbox | Set-Mailbox -CalendarRepairDisabled $true

Disable calendar repair feature for a specific user:
Set-Mailbox username -CalendarRepairDisabled $true

Enable repair of detected issues for a server (enabled by default):
Set-MailboxServer -Identity servername -CalendarRepairMissingItemFixDisabled $false

Set the log folder size limit (to 300 MB):
Set-MailboxServer -Identity servername -CalendarRepairLogDirectorySizeLimit 300MB

Configure for how long to keep the logs:
Set-MailboxServer -Identity servername -CalendarRepairLogFileAgeLimit 30

Set the number of days into the future to check and repair items:
Set-MailboxServer -Identity servername -CalendarRepairIntervalEndWindow 60

Change the default location of the log file:
Set-MailboxServer -Identity servername -CalendarRepairLogPath L:\CRA

Schedule the maintenance window (the time for actual repairs (e.g. every business day between 5:00 AM and 8:00 AM)):
Set-MailboxServer -Identity servername -CalendarRepairSchedule Monday.5:00-Monday.8:00,Tuesday.5:00-Tuesday.8:00,Wednesday.5:00-Wednesday.8:00,Thursday.5:00-Thursday.8:00,Friday.5:00-Friday.8:00

Set the work-cycle (how often to check the calendars for issues (e.g. check all calendars every day)) and checkpoint (how often to attempt repairs (e.g. if found any issues, attempt repairs every day during the day/time specified in the maintenance window)):
Set-MailboxServer -Identity servername -CalendarRepairWorkCycle 1.00:00:00 -CalendarRepairWorkCycleCheckpoint 1.00:00:00

Delete the maintenance window:
Set-MailboxServer -identity servername -CalendarRepairWorkCycle 00:00:00 -CalendarRepairWorkCycleCheckpoint 00:00:00

Delete the work-cycle settings:
Set-MailboxServer -Identity servername -CalendarRepairSchedule Monday.0:00-Monday.0:00

The service desk guys should be informed about the change as they might start receiving calls about some strange things happening to peoples' calendars.

Default settings:


More info:
Managing Calendars
Outlook: Troubleshooting guide for missing, duplicated or unsynchronized calendar items
What is the Enable logging (troubleshooting) option?


  1. To try this exchange mailbox recovery tool performs the complete exchange repair including mailboxes and Public Folders. Software recovers corrupt Exchange files - unmounted and offline. - See more at:

  2. Excellent write up on calendar repair assistant! In my limited experience, however, I’ve found out that to Convert edb to pst - EdbMails is the best option as it can handle most exchange recovery tasks gracefully. It supports export of mailboxes to PSTs and also has an extensive range of filtering options. It is a forensic recovery that can extract most data from even corrupt or inaccessible exchange databases.It supports public, private folder recovery along with migration to Live exchange and Office 365. Archive mailbox migration is also supported by edbmails