This project has moved and is read-only. For the latest updates, please go here.

Directions for use:

Unzip the package after downloading and place the files in the same directory (preferably a new empty one) on your drive. Then run the tool from a command window open in that directory.

Multi Mailbox Mode only works when run against Exchange 2010 or earlier versions. Exchange 2013 and later require Autodiscover, and I have not implemented that ability into CalCheck as of yet.
This also pertains to using CalCheck to process a Mailbox your current mailbox has full access rights on - it will only work with Exchange 2010 or earlier until CalCheck is updated with Autodiscover functionality.

Editing the CalCheck.cfg File to include/exclude tests:

CalCheck Help:

Checks Outlook calendars and items, and reports problems.

You can edit the CalCheck.cfg file to turn specific tests on or off.

CalCheck [-P <profilename>] [-L <path\file>] [-M <LegacyExchangeDN>] [-N <Display Name>] [-O <path>] [-C <Version>] [-A] [-F]
[-R] [-V]
CalCheck -?

-P <Profile name> (if absent, will prompt for profile)
-L <List File> (file including Name and LegDN) of mailbox(es) to check
-M <Mailbox DN> Used with -N (if specified, only process the mailbox specified.)
-N <DisplayName> Used with -M (if specified, only process the mailbox specified)
-O <Output Path> (path to place output files - default is the current directory)
-C <Version> Click To Run scenario with Office 2013 - load a specific MAPI version
-A All calendar items output to CALITEMS.CSV
-F Create CalCheck Folder and move flagged error items there
-R Put a Report message in the Inbox with the CalCheck.log file
-V Verbose output to the command window
-? Print this message

There will always be resulting CalCheck.log and CalCheckErr.csv files that show any potential items to
fix or remove, as well as processing information.


Default - Prompt for a profile, and process the mailbox in that profile:

Process just the mailbox in MyProfile:
CalCheck -P MyProfile

Process List of mailboxes in "C:\Directory\List.txt":
CalCheck -L "C:\Directory\List.txt"
"List.txt" needs to be in the format of Get-Mailbox | fl output that includes
the LegacyExchangeDN and Name for each mailbox, like:
Name : Display Name
LegacyExchangeDN : /o=ORG/ou=AdminGroup/cn=Recipients/cn=mailbox

Process a mailbox this user has full rights to:
CalCheck -M <LegacyExchangeDN of the mailbox> -N <Display Name of the mailbox>

Process a mailbox and move error items to the CalCheck folder in the mailbox,
and place a report message in the Inbox:
CalCheck -F -R

Process a mailbox based on a specific profile and version of MAPI for Click To Run scenario:
CalCheck -C <Outlook version - like 2007, 2010, 2013> -P MyProfile

Print this message
CalCheck -?


Privacy Note:
The data files produced by CalCheck can contain PII such as e-mail addresses.
Please delete these files from your system after analysis and/or supplying them to Microsoft for analysis.
For more information on Microsoft's privacy standards and practices, please go to

Multi Mailbox Mode (Exchange 2010 and earlier versions only):

Multi Mailbox (List) Mode replaces the "Server" mode that was previously in CalCheck. "Server" mode was removed because it did not work with Exchange 2010 or higher builds of Exchange. Multi Mailbox (List) mode gives you the flexibility to run CalCheck against any group of users - you just need to have a list with the Name and LegacyExchangeDN for each mailbox you want to run against.

Running CalCheck in Multi Mailbox (List) Mode:

A. Give Rights To An Account To Run CalCheck In Multi Mailbox Mode
B. Create A Text File With A List Of Mailboxes To Run Against
C. Run CalCheck In Multi Mailbox Mode

A. Give Rights To An Account To Run CalCheck In Multi Mailbox Mode

1. Give a user "FullAccess" to all mailboxes on the server or in the Org.
A sample Powershell command to do this:

Get-Mailbox -OrganizationalUnit "OUName" | Add-MailboxPermission -User "UsersName" -AccessRights FullAccess

B. Create A Text File With A List Of Mailboxes To Run Against

1. Open Exchange Powershell and run a command to get a list of mailboxes including the Name and LegacyExchangeDN.
A sample command to do this:

Get-Mailbox -Server "ServerName" | fl Name, LegacyExchangeDN | Out-File <path and file name> -width 200

2. Copy this file to the machine/location where you will run CalCheck

C. Run CalCheck In Multi Mailbox Mode

1. Log into a machine with Outlook installed as the user you gave FullAccess to for the mailboxes.

2. Create an Online Outlook profile for that user.

3. Open the command window and change to the directory where CalCheck is located and run the following command:

CalCheck -L <path and file name>

CalCheck KB Article:

More information is available in the Microsoft Knowledge Base article for CalCheck:

Last edited Nov 23, 2015 at 7:01 PM by rtopken, version 24


No comments yet.