You are on page 1of 6

CalCheck Version 2.

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 <Dis
play 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 specif
-N <DisplayName> Used with -M (if specified, only process the mailbox speci
-O <Output Path> (path to place output files - default is the current direc
-C <Version> Click To Run scenario with Office 2013 - load a specific MAPI
-A All calendar items output to CALCHECK.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 be resulting CalCheck.log and CalCheckErr.csv files that show
potential problems and/or items to fix or remove as well as processing informati
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 inclu
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 mail
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 T
o 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 t
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
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
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 includi
ng 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
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>
7/18/2014 Release:
Changed reporting of error and warning items to output to a CSV file (CalCheckEr
r.csv). This allows for filtering of the output as opposed to scrolling through
the log file.
Added test for Sender Name and Sent Representing Name.
Added test for Birthdays (will test and skip if item is an all day event and has
birthday in the subject)
Fixed a problem with smart apostrophes in reporting.
Fixed crashing problem if CSV file is opened while attempting to run CalCheck.
Fixed a time formatting problem.
Removed reporting of an exception occurring before the series start - since you
can move the first instance before the original start.
9/9/2013 Release:
Fixed memory leak issues that caused CalCheck to hang when run on machines with
Outlook 2013 installed.
Fixed issues with CSV output.
Updated logging so that the time for lines is not output - instead a Start and F
inish time are logged.
Updated some other logging areas to be better.
7/10/2013 Release:
Fixed issue where CalCheck did not run correctly on WindowsXP.
6/17/2013 Release:
New CalCheck.cfg option - WarningIsError. Default is False, when set to True in
the cfg file then all items flagged as Warning items will be moved to the CalChe
ck folder in the mailbox when using the "-F" switch.
Added new testing for problems in the recipient table.
Added the dispidTimeZoneStruct property to output when dumping message propertie
s to CSV using the "-A" switch.
10/19/2012 Release:
New Switches added.
-L > Replaces the -S switch. Due to a problem with getting the mail
box table on Exchange 2010 servers, this new switch was added to allow multiple
mailboxes to be scanned in Exchange 2010 and later. Please see the instructions
for "Running CalCheck in Multi Mailbox Mode" to see how to use the -L switch.
-M and -N > Added the -N switch and coupled it with the -M switch. The Mai
lbox DN and the Display Name are needed for CalCheck to get all the proxy addres
ses when running the tool to connect to and scan a mailbox your user has rights
to open (not the mailbox that the current profile opens as the default primary m
ailbox). The proxy addresses are used for the "Attendee Becomes the Organizer" t
est to ensure the test is run as well as it can be run.
-C > Click To Run scenario. Outlook 2013 can be installed through C
lick To Run, and so can be installed side by side with a previous version of Out
look. The -C switch followed by the Outlook version (2013, 2010, 2007) will load
that specific version of MAPI, which is needed to be able to choose profiles fo
r that version of Outlook, etc.
Added a Config File.
CalCheck.cfg is in the directory with CalCheck.exe. If it's not there then the t
ool will error and not run. You can edit this file (it is plain text) and set in
dividual tests on or off. The default is that all tests are set to true/on, and
will run.
New tests that can be configured have been added.
ItemSize10 > Report items greater than 10M in size
HolidayItems > Check and report against Holiday items
PastItems > Check and report items that ended in the past
All other tests that already existed in CalCheck are also configurable to on/off
- there is a brief explanation of each test in the CalCheck.cfg file
7/11/2012 Release:
Added a check for greater than 25 attachments - if more than 25, then item will
be reported with a Warning
Fixed a few bugs with Time-checks.
Changed how logging gets done - more will be happening in this space later.
Removed Holiday items from being checked.
5/16/2012 Release:
Fixed the GlobalObjectID test to work better in full server mode.
Added reporting on items that ended in the past.
Added a check for Exception Data to ensure the Start and Ending times for except
ions are within the boundaries of the series. If not then the item will be repor
Added better reporting for errors that occur during the non-testing phase, such
as at logon, accessing various tables in the mailbox, etc.
4/27/2012 Release:
Added a check for detecting items in the Calendar that have the same Global Obje
ct ID.
Added a check for detecting items that are greater than 25M in size and greater
than 50M in size (Warning).
Added a switch to allow redirection of the output files so a user can direct out
put to a separate folder.
Updated the "Attendee becomes the Organizer" test to work with all proxy address
es of the user. This significantly reduces false positives on this test.
1/16/2012 Release:
Added a check that looks at the recurrence data to ensure that certain fields ar
e the correct size - if not then it will report an error. The problem symptom he
re would be that a user's Free Busy information would not show correctly.
If the recurrence data on an item is badly corrupted - it is possible that the M
rMAPI utility (it parses the recurrence data for CalCheck) will return an error
- and that will also show in the CalCheck log.
11/21/2011 Release:
Added a check for the problem where an attendee becomes the organizer of a meeti
ng. This test checks the current Exchange DN of the user against the PR_SENT_REP
RESENTING_EMAIL_ADDRESS property to see if they match - along with the dispidApp
tStateFlags property on the item to see if it is set as the Organizer.
If you have gone through a migration, or have otherwise changed the Exchange DN
of users in your oganization, then this test will potentially report errors when
in fact things might be fine on items it reports in error.
Because of the impact of the above - and the potential perf impact of checking f
or duplicate items, I added a new switch:
-No [org] [dup]
-No org : Will not perform the above Organizer check
-No dup : Will not perform the duplicate calendar item check
Others checks might have the option of being disabled in the future, but these s
eem the most impactful presently.
8/4/2011 Release:
Added two new checks - one for detecting duplicate items in the Calendar, and on
e for checking to see if there are too many recurring meetings in the Calenar. T
here is a limit of 1300 recurring meetings/appointments in the Calendar - so the
tool will now give a warning at 1250 and an error at 1300 recurring items as it
counts them.
The duplicate item check will report an error when a duplicate is found, and usi
ng the -F switch will move them to the CalCheck folder in the mailbox.
Added some new reporting in the CalCheck log to show the number of problem items
, number of errors and number of warnings.
In server mode the CalCheckSvr log will show the same - plus a list of mailboxes
that had problem items in them.
6/6/2011 Release:
Added a new switch: -R
This will create an email message in the Inbox folder with the CalCheck.log as a
n attachment. Makes things easier when CalCheck is run in server mode - each use
r will get their CalCheck log showing any problems, etc.
Also makes things easier for collecting the data from the user since the log wil
l be in an e-mail - and can be quickly forwarded to support.
5/25/2011 Release:
Updated the -F switch so that it will also move any meeting conflict items to th
e CalCheck folder. This was a request since there was an issue with moving a mai
lbox when there are meeting conflict items in the Calendar.
5/6/2011 Release:
There was a problem with the tool when calling MrMAPI.exe under certain conditio
ns with a long path. Fixed that in this release.
5/3/2011 Release:
There was a problem with running with the -F switch that caused CalCheck to cras
h. I fixed that in this release.
4/4/2011 Release:
Added a new switch: -F
This will create a folder in the Outlook folder hierarchy called CalCheck, and w
ill move the flagged error items out of the Calendar folder and into the CalChec
k folder. A user could then recreate the problem item(s) if needed. Items that a
re moved to the CalCheck folder can be moved back to the Calendar folder, or del
eted, etc. After any fixes are completed, the CalCheck folder can then be manual
ly deleted/removed from Outlook.
Updated the below recurring item check (3/21 release) to handle Updated items be
3/21/2011 Release:
Added a new check for recurring items where certain properties are not lined up
correctly and could cause a crash in Outlook.
Added an overall "CalCheckSvr.log" to the output when running in Server mode. It
shows the reported items for all the mailboxes scanned in server mode to make t
hings a little easier to find.