DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 2678030 - Last Review: June 16, 2014 - Revision: 9.0

On This Page

Summary

The Calendar Checking Tool for Outlook (CalCheck) is a command-line program that checks the Microsoft Outlook calendar for problems. The tool opens an Outlook messaging profile to access the Outlook calendar. It performs various checks on general settings, such as permissions, free/busy publishing, delegate configuration, and automatic booking. Then, each item in the Outlook calendar folder is checked for known problems that can cause unexpected behavior, such as meetings that seem to be missing.

The CalCheck tool then generates a report that can be used to help diagnose problem items or identify trends.

More information

To use CalCheck, the Outlook calendar must reside on a computer that is running Microsoft Exchange Server. The tool does not work with IMAP, POP3, or other non-Exchange email accounts.

Installation

To download and install the Calendar Checking Tool for Outlook, click the following link to view the Microsoft Download Center page. The website also lists the system requirements and the steps to follow to uninstall the tool.

http://www.microsoft.com/download/en/details.aspx?id=28786 (http://www.microsoft.com/download/en/details.aspx?id=28786)

Note The 64-bit version of this tool is for use only with the 64-bit version of Microsoft Outlook 2010.

Checks that are performed

The Calendar Checking Tool performs two basic kinds of checks, calendar-specific checks and item-level checks.

Calendar-specific checks

The following calendar-specific checks are performed and then logged in the report:
  • Permissions on the calendar.
  • The total number of items in the calendar folder.

    For more information about high item counts in the Calendar folder, click the following article number to view the article in the Microsoft Knowledge Base:
    2768656  (http://support.microsoft.com/kb/2768656/ ) With many items in a Cached mode .ost file or .pst file folders, Outlook performance issues may occur
  • Delegates on the calendar.
  • Free/busy publishing information.
  • Direct Booking settings for the mailbox or calendar.
Note The information for these three checks is read from the Local Free/Busy message. In rare cases, Outlook may be unable to open that message. Then, these checks fail. You should force the regeneration of the hidden free/busy information in the Exchange mailbox only if this occurs.

For more information about how to regenerate the hidden free/busy information, click the following article number to view the article in the Microsoft Knowledge Base:
958443  (http://support.microsoft.com/kb/958443/ ) You experience issues in Outlook when you try to configure free/busy information or when you try to delegate information

Item-level checks

The following item-level checks are performed and then logged in the report:
  • No Organizer email address (PR_SENDER_EMAIL_ADDRESS or PR_SENT_REPRESENTING_EMAIL_ADDRESS)
  • No Organizer display name (PR_SENDER_NAME or PR_SENT_REPRESENTING_NAME)

      For more information about missing Organizer email addresses or display names, click the following article number to view the article in the Microsoft Knowledge Base:  
    2849083  (http://support.microsoft.com/kb/2849083/ ) "Could not complete the operation. One or more parameter values are not valid" error message when an organizer updates a recurring meeting
  • No dispidRecurring property (This causes an item not to show in the Day, Week, or Month view.)

      For more information about appointments not displaying in the Day, Week, or Month view, click the following article number to view the article in the Microsoft Knowledge Base:  
    827432  (http://support.microsoft.com/kb/827432/ ) An Outlook calendar appointment is not visible in the Day, Week, or Month view when you create the appointment by using WebDAV in Exchange 2000
  • Time existence of the dispidApptStartWhole and dispidApptEndWhole properties

    If you are the organizer, you can try to resolve this issue by changing the Calendar folder view to a table view, finding the item, and then canceling it. Then, you must then create a new meeting. If you are the attendee, you should contact the organizer of the meeting and ask him or her to cancel and then re-create the meeting.

  • No Subject for meetings that occur in the future or for recurring meetings (A warning is logged.)

    If you are the organizer, update the meeting to include a subject. If you are the attendee, ask the organizer to update the meeting to include a subject. Although this is not an error condition, it makes it easier to troubleshoot any future issues that are related to the meeting.

  • Message Class check (a warning is logged.)

    If you have an issue with a meeting that does not have the default message class of IPM.Appointment, and if removing or canceling the meeting resolves the issue, you should determine which program is creating meetings by using that custom message class. You have to determine whether the program or add-in is a Microsoft or third-party application. If it is a third-party application, contact the third party for support.

  • No Message Class (an error is logged.)

    If you have an issue with a meeting that does not have the default message class of IPM.Appointment, and if removing or canceling the meeting resolves the issue, you should determine which program is creating meetings by using that custom message class. You have to determine whether the program or add-in is a Microsoft or third-party application. If it is a third-party application, contact the third party for support.

  • Multiple checks against the dispidApptRecur (recurrence binary large object [BLOB]) property:
    • Time on overall start and end times.
    • Ability to parse the data in the property.
    • Existence of the property, but empty.

    If you are the organizer, you should change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see it in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask her or him to cancel and then re-create the meeting.

  • dispidRecurring property is set to False or does not exist, but the dispidRecurType property is not set to None, which indicates that the appointment is recurring. Therefore, the two properties are conflicting.

    If you are the organizer, you should change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see it in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask her or him to cancel and then re-create the meeting.

  • Check for conflicting items in the calendar.

    This checks the PR_MESSAGE_STATUS flag for any indication of conflict. These items are moved when you run calcheck –f. In some cases, a mailbox move can fail when you receive the following CAS log error:
    MapiExceptionPartialCompletion: errorCode="0x80070680" Unable to copy message.
  • Check for duplicate items, based on certain MAPI properties.

    If the subject, organizer, location, recurring/single instance, and start/end times properties all match for two or more items, calcheck –f moves all duplicates except one.

  • Check for meetings that have the same or an empty Global Object ID.

    For more information about meetings that have the same Global Object IDs, click the following article number to view the article in the Microsoft Knowledge Base:
    2714118  (http://support.microsoft.com/kb/2714118/ ) Calendar items that are copied are missing in Exchange Server 2007
  • Check for items that have Start Time, End Time, or Recurrence properties set to 0 (year 1601) or that are missing.

    If you are the organizer, you should change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see it in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask him or her to cancel and then re-create the meeting.

  • Check for items that have Start Time, End Time, or Recurrence year earlier than 1995 or greater than 2025.

    This is not necessarily an error condition. You should delete or cancel the item only if it seems to be corrupted. By default, these items are not moved when you use the –f argument. These are moved with calcheck -f only if you configure calcheck to treat warnings as errors per the cfg file (WarningIsError=true).

  • Check for items that have Start Time, End Time, or Recurrence properties greater than the Outlook boundary.

    If you are the organizer, you shoiuld change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see it in the list, run calcheck -f. If you are the attendee, you shold contact the organizer and ask her or him to cancel and then re-create the meeting.

  • Check for items that are larger than 10, 25, and 50 megabytes (MB). (A warning is logged.)

    This is not an error condition. However, see Best practices when using the Outlook Calendar (http://office.microsoft.com/en-us/outlook-help/best-practices-when-using-the-outlook-calendar-HA104004449.aspx) .

  • Check for items that contain more than 25 attachments.

    This is not an error condition. However, see Best practices when using the Outlook Calendar (http://office.microsoft.com/en-us/outlook-help/best-practices-when-using-the-outlook-calendar-HA104004449.aspx) .

  • Check whether there are over 1,250 recurring meetings (a warning is logged) or over 1,300 recurring meetings (an error is reported). The limit is 1,300 recurring meetings.

    Issues may occur if you are using EXCDO in older versions of Exchange Server. For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
    892524   (http://support.microsoft.com/kb/892524 / ) You cannot save or delete a recurring appointment from a Calendar that is maintained on an Exchange Server 2003 computer
    943371  (http://support.microsoft.com/kb/943371/ ) Event IDs 8206, 8213, and 8199 are logged in an Exchange Server 2007 environment
  • Check whether you are an attendee and you became the organizer of a meeting.

      For more information, click the following article number to view the article in the Microsoft Knowledge Base:  
    2563324  (http://support.microsoft.com/kb/2563324/ ) Current issues with Microsoft Exchange ActiveSync and third-party devices
  • Checks exception data in the Recurrence BLOB to make sure that exceptions occur within the start times and the end times of the series.

    If you are the organizer, change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask her or him to cancel and then re-create the meeting.

  • Check meeting exception data in the Recurrence BLOB to make sure that it is the correct size.

    If you are the organizer, change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask him or her to cancel and then re-create the meeting.

  • The recipient table has missing, duplicate, or corrupt recipient data. This includes entries such as email addresses, display names, or address types.

    If you are the organizer, change the Calendar folder view to a table view, find the appointment or meeting, and then cancel and re-create it. If you don’t see in the list, run calcheck -f. If you are the attendee, you should contact the organizer and ask him or her to cancel and then re-create the meeting.

  • Report on holiday items

    If you prefer not to have holiday items flagged, change the .cfg file. CalCheck identifies an all-day event as a holiday if the named property Keywords includes the "holiday" string.

Current Help and command-line switches

The following section describes the command-line switches that are available to customize CalCheck behavior.

CalCheck [-P <profilename>] [-L <filename>] [-M <mailboxname>] [-N <display_name>] [-S <servername>] [-O <path>]
[-C <version>] [-A] [-F] [-R] [-V] [-No]


CalCheck -?

-P Profile name (if absent, will prompt for profile)
-L Path and file name of List file (file listing the Name and LegacyExchangeDN) of mailbox(es) to check
-M Mailbox DN is used with -N (process only the mailbox that is specified)
-N Display name is used with -M (process only the mailbox that is specified)
-O Output path (if specified, write output files to this path. The default is the current folder.)
-C Version to use for Office 2013 Click-to-Run scenario
-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 Prompt window
-? Print this message

Note The -L, -N, and -C switches are new to CalCheck version 2 (v. 2). The -S parameter in version 1 of CalCheck is replaced with -L. Additionally, the CalCheck v1 -No switch is replaced by the CalCheck.cfg file. The CalCheck.cfg file is explained in detail later in this article.

Note The CalCheck.log file is always generated. The CalCheck.log file shows any items that may have to be fixed or removed and also shows processing information.

Examples


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

Process all mailboxes on MyServer:
CalCheck -S MyServer

Process all mailboxes on MyServer by using MyProfile as the logon profile:
CalCheck -P MyProfile -S MyServer

Process just the mailbox in MyProfile:
CalCheck -P MyProfile

Process the specified mailbox, and use MyProfile as the logon profile:
CalCheck -P MyProfile -M "/o=org/ou=orgunit/cn=Recipients/cn=UserA" -N "User A"

Process the list of mailboxes in "C:\Directory\List.txt":

CalCheck -L "C:\Directory\List.txt"

Note "List.txt" has to be in the format of Get-Mailbox | fl output that includes the LegacyExchangeDN and Display Name for each mailbox:

Name : Display Name
LegacyExchangeDN : /o=ORG/ou=AdminGroup/cn=Recipients/cn=mailbox


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

Process a mailbox based on a specific profile and version of Outlook. This is necessary when you run a side-by-side installation of Office in a Click-to-Run scenario:
CalCheck -C <####> -P MyProfile
Note the placeholder <####> represents the Outlook version (for example, 2007, 2010, or 2013).

Print this message:
CalCheck -?


Run CalCheck in Multi-Mailbox (list) mode

To process a list of mailboxes, follow these steps:

  1. Give a user Full Access rights to all mailboxes on an Exchange server or Exchange organization.
    1. The following example PowerShell cmdlet grants AdminB Full Access rights to all mailboxes in OrgUnit2:

      Get-Mailbox -OrganizationalUnit "OrgUnit2" | Add-MailboxPermission -User "AdminB" -AccessRights FullAccess
  2. Create the list of mailboxes. This includes the Display Name and LegacyExchangeDN. To do this, follow these steps:
    1. Open Exchange PowerShell, and then run a command that resembles the following:

      Get-Mailbox -Server "ServerName" | fl Name, LegacyExchangeDN | Out-File <path_file_name> -width 200

      Note The placeholder ServerName represents the name of the server, and the placeholder path_file_name represents the path and file name of the .txt file to be created.
    2. Copy the .txt file to the workstation where you will run CalCheck.
  3. Run CalCheck in Multi-Mailbox (list) mode. To do this, follow these steps
    1. On a workstation that has Outlook installed, log on as a user who has Full Access rights to the mailboxes.
    2. Create a new Outlook profile, and then configure the Exchange Server account to use Online mode.
    3. Run cmd, and then change to the directory where CalCheck is located.
    4. Run the following command:

      CalCheck -L <path and file name>

      Note The placeholder <path and file name> represents the path of the .txt file that you created in step 2.
When you run CalCheck in Multi-Mailbox (list) mode, the following files are created:
  • CalCheckMaster.log. This is a summary for all mailboxes that were processed.
  • CalCheck__<mailbox>.log. One such file is created for each mailbox that was processed.

    Note The placeholder <mailbox> represents the recipient name part of the LegacyExchangeDN.

Configuration File in CalCheck version 2

CalCheck version 2 (v2) now includes a CalCheck.cfg file. This file is located in the same directory in which CalCheck.exe is located. If the .cfg file is missing, CalCheck v2 displays an error and does not run. The .cfg file is in plain text format. You can manually edit the file to enable or disable individual tests. By default, all tests are set to true. By default, therefore, all tests are performed.

Applies to
  • Microsoft Outlook 2010
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Exchange Server 2010 Enterprise
  • Microsoft Exchange Server 2010 Standard
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
Keywords: 
KB2678030
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support