OUTBOX: How to tell if the DST Rebasing Tool has been run on a mailbox?

The rebasing tool adds time zone information to appointments that it touches.  This time zone information is the same that Outlook 2007 (and patched versions of CDO 1.21) puts on appointments when it creates them.  These time zone structures are described here…




What that means is that we cannot discern between appointments that were touched by the rebasing tool and ones that were created or modified by “new” clients (Outlook 2007 or DST patched versions of CDO 1.21).  There isn’t any marking on the mailbox itself so what you would have to do is iterate through items in the calendar folder and look for these properties on calendar items.  If they exist on any appointment in the calendar then you know that the rebasing tool and/or “new” clients have been there.


You would need to use MAPI, CDO 1.21, or Outlook 2007’s object model to write this code.  MAPI is not scriptable and you may not have Outlook 2007 available to you so I would suggest CDO 1.21.  The following is a small VBA example which uses CDO 1.21 that you can run in Outlook which will pop up a message box telling you if new clients have been to this mailbox. 


Sub Main()

    Dim oSession As New MAPI.Session


    oSession.Logon , , False, False, , True


    Dim oFolder As MAPI.Folder

    Set oFolder = oSession.GetDefaultFolder(CdoDefaultFolderCalendar)


    Dim oMessages As MAPI.Messages

    Set oMessages = oFolder.Messages


    Dim oAppt As MAPI.AppointmentItem

    Dim oFields As MAPI.Fields

    Dim oField As MAPI.Field


    For Each oAppt In oMessages

On Error Resume Next

        Set oFields = oAppt.Fields

        Set oField = oFields.Item("0x825E", "0220060000000000C000000000000046")


        If Not oField Is Nothing Then

            MsgBox "New clients have been here."

            Exit For

        End If


End Sub


…You can use this VBA code as the beginnings of a script to identify appointments that have been touched by the rebasing or “new clients”.  If you don’t get any message box from this script that “New clients have been here” then you know either one of two things: 1) You don’t have any appointments in the calendar that you are the organizer of or 2) The rebasing tool or new clients have not touched any appointments in this calendar…




CDOLive: Property Tags and Types



BLOG: Outlook 2007 Time Zone Structures



More Information:


GLEN: Creating a Summary Email of all appointments within a Users Calendar for given period 



GLEN: Creating a Report of Meeting Organizers for all appointments in all calendars on a Server via WebDAV


Comments (7)
  1. Doug says:

    What I need is an end user based method that displays all appointments that have the old TZ bias that the requesting user created.  The use case is, user goes to web page, clicks a link which brings them to a page that shows them their bad appointments.  From there they can either click the link to open the appt or go directly into Outlook 2003 and correct.

    We aren’t using the rebasing tool but making users responsible.  Giving them verification that they fixed it is very helpful.


  2. Microsoft Exchange PHP WebDAV Examples How to analyze Exchange Server SMTP log files in Microsoft Excel

  3. Doug,

    There is no way to identify which appointments have a "bad" bias.  Outlook versions pre-Outlook 2007 don’t put these time zone properties on an appointemnt.  If this property is not available on an appointment it doesn’t mean that the appointment needs to be rebased.


  4. Jeff says:

    I have heard your name from Yaxiong Lin and he said you might help me for the following problem since you have had similar problem before.

    We have a Java application that uses an API called J-Integra to send appointments to users’ mailboxes in Exchange servers. The J-Integra API talk a component of Outlook called CDO and the CDO actually push the appointment to the Exchange servers. We have completed coding the application and here is what we found from testing it:

    The same application ran correctly in the lab environment.

    In the production environment, all non-Daylight Saving Time appointment are scheduled 6 hours earlier and all Daylight Saving Time appointment are 5 hours earlier.

    We currently use another API called Compoze to do same thing and it does not have this problem. Also our organization has applied all the DST patches.

    Since I am in the central time zone and the time is 6 hours behind the UTC time, it seems that the appointment time stamps are stored to Exchange server.

    From all these facts, it does not seem likely the problem is from Exchange server, Outlook or Operating system. It seams it is a problem from CDO setting. Also, it does not look like the DST problem, I would think that is time zone setting problem. It says the CDO keeps its own time zone, but I have not figure out how to view and set it.

    Thanks for help

  5. From what I read it sounds like your Java applicaiton calls into J-Integra which then calls into CDO (I assume CDO 1.21).  You are correct that CDO 1.21 does maintain its own timezone information so you will need to patch CDO.dll.

    If you have Exchange 2003 Server or Exchange 2003 System Manager installed on your application server to get CDO then you will need to install the Exchange 2003 update…


    If you have Outlook 2003 installed on your application server then you will need to install the Outlook 2003 update…


  6. Jeff says:


    Thanks for help.

    But I have couple questions. In my problem, the DST appointments are 5 hours off and non-DST appointments are 6 hours. It does not seems to be DST problem. correct?

    Also, I have not figure out how to dowload the hotfix from http://support.microsoft.com/default.aspx?scid=kb;EN-US;932962. Does I need a support contract with MS to do this?

    Thanks again.

  7. The hotfix mentioned in KB 932962 is not available for download from this article.  As the it says, "…contact Microsoft Customer Support Services to obtain the hotfix…".  You will not be charged for this incident if all you want is to get the hotfix and you don’t have to be a Premier customer.

    As far as the problems with J-Integra creating appointments that are 5 and 6 hours off, I would recommend that you follow up with the vendor.  Unless you can create a simple CDO 1.21 script that creates appointments to reproduce the behavior.

Comments are closed.

Skip to main content