iCal – Exchange Time Zone Fix – Chapter 3

I’ve updated the iCal-Invite-Fix script again. This time to allow for adding multiple Exchange servers to the script so that you should only need a single script. The set-up is slightly more complex.
As the image above shows there are now only 2 properties, both of which are lists. These lists work together as an array; which means the order of the list items is crucial.

  • exchange_fragment contains unique fragments of the TZID that the Exchange server sends.
  • ical_tzid contains the tzid info that iCal expects to see.

If you have any problems setting it up let me know. This post has all the info for the script.
Download the iCal-Invite-Fix script.

Filed under: AppleScript, code, mac-osxTagged with: , ,


  1. I’ve tweaked the script to no longer require the user to input the name of the calendar for canceling events. I’ve modified the text above to reflect this.

  2. Minor tweak for odd behavior in Snow Leopard.

  3. Andy:

    I have tried your script and I still have problems.

    My scenario is that I am sending invitations from my MobileMe account (iCal) to others that are running Outlook/Exchange.

    I get replies from the individuals, but the attachments come in as “windat.dat” files. I installed a product called LetterOpener which converted the *.dat files ti ICS files and then installed your script. These replies still did not update my iCalendar.

    I tried this experiment from a Google account and Google works when Letter Opener is installed.

    Thanks for your great work.

  4. @Michael Bartz,

    I’m not sure what you’re trying to accomplish by adding these replies back to iCal. Do they just tell you who has replied and whether they are coming?

    The script is solely for importing Exchange/Outlook invites, changes or cancellations to invites into iCal, not replies to invites.

    I don’t send out invites from my iCal so I’m not really sure what Google calendar is doing that iCal isn’t. If you could let me know perhaps there’s a way to modify the script to do what you need.

  5. Hi Andy,
    thx for the great work. Do you know if the script works with ical under Lion?
    thx for your help.

    • It should. The script does most of the work rather generically in unix.

  6. I receive .ics attachments that are Outlook/Exchange invitations, always in GMT/UTC, using Microsoft’s (apparently half-baked) implementation of the iCalendar format. The time zones of the meetings are specified in detail in the .ics attachments (always converted to GMT) but in what appears to be a proprietary format; the time stamps for the beginnings and ends of the meetings do not carry the ‘Z’ suffix for Zulu time. (Invitations received from Google Calendar are also in GMT and do contain the ‘Z’ suffix—with no separate, complex statements for time zone, Outlook-style—and all is well with those in iCal.)

    I’ve tried adding various fragments to your script but can’t seem to come up with a pair of fragments that works. The .ics invitations from Outlook are in GMT (specified as “Greenwich Mean Time/Dublin/Edinburgh/London”) and I am in London but at GMT+1. In Lion, this shows in iCal as “United Kingdom Time” — the problem is that we’re in daylight saving time and that part is now handled by the Mac automatically and I seem unable to specify UTC or GMT without the daylight savings. I could potentially map to an zone immediately to the left but I guess that would break in the winter. (Is that right?) The result is that all invitations are out by an hour — the senders’ times are being converted by their servers to GMT but iCal can’t read time zones or the script is mapping one to the other. Do you have any suggestions? Sorry about the length of this and thanks for your great work.

    • Can you email me one of these ics files at andy/at/thefragens/dot/com?

  7. Thanks, Andy — I’ve sent you something.

  8. @Bahi – Try this.

    Set exchange_fragment to (GMT) Greenwich Mean Time/Dublin/Edinburgh/London

    Set ical_tzid to Europe/London

  9. Didn’t work for me, Andy—the event was added by the script but at GMT so it’s one hour out. Thanks for trying, though. There doesn’t seem to be a global list of agreed timezone IDs. It’s puzzling to find the Microsoft invitations being sent without a Zulu suffix.

    • It your current time zone at GMT +1 set on your computer? I ask because the script is supposed to set the correct TZID for the Exchange Server, which I thought was GMT+0.

      I can write an adjustment for you to add the ‘Z’ if needed, I’ll have to figure out how to make it an option.

  10. Thanks for the resource info, Andy. Regarding time zone, the adjustment for daylight saving time here in automatic; the time zone is set to London. The Exchange calendar invitations are also coming from someone in London (currently GMT +1) but the MS system is issuing .ics invitations in GMT, which is obvious to a human reading the contents of an invitation but not obvious to iCal in Lion. I suspect the invitations are coming from someone using an old version of Outlook but for various reasons, I can’t make enquiries. If neither Apple nor Microsoft are in a hurry to fix this, I’d guess that it was a fairly isolated occurrence and probably not worth spending time on—invitations from other systems are coming through okay. Thanks, Andy.

    • Bahi, you might try making the setting in ical_tzid to something in GMT+1

Comments are closed for this article!