• Find me online:  coolest guy on the internet
Subscribe: Via E-mail | Blog Posts | Lifestream | Photos
  • BlogI like to write.
  • LifestreamPlaying online.
  • PhotosMy life in Photos.
  • ProfileAll about me.
  • ProjectsStuff I'm doing.
  • WikiA place for Geeks.
  • ContactGet in touch.

Justin Hartman

Posted on March 31, 2008 - by Justin Hartman

Apple iCal / Microsoft Exchange fix for Leopard

Apple Bugs Exchange Hacks iCal iCalFix Leopard Microsoft Projects

One of the major drawbacks to working on an Apple Mac in a large corporate company is that most IT departments still use Microsoft Exchange Server for email and calendar support.

While we’ve found many a work-around to get email up and running using Apple Mail there remains this irritating bug that prevents Exchange iCal events from syncing correctly with Apple iCal.

The reason this bug exists is because Exchange doesn’t use standard compliant timezone information while Apple does and as a result iCal can’t figure out what the correct timezone is from Exchange iCal invitations. Here’s a quick example of the South African timezone differences between the two.

Exchange uses this format:
(GMT+02.00) Harare/Pretoria

While iCal uses this:
Africa/Johannesburg

This means that when a meeting request comes in from a Windows PC, iCal can’t read data beyond the GMT+02.00 and it simply adds on 2 hours to the event. So a meeting sent from Exchange, scheduled for 14:00 actually appears in iCal as 16:00. We’ve missed many a meeting as a result!

Over the last few months I’ve spent countless hours trying to find a fix but no one has managed to get this issue resolved – not even Apple. I’ve now resorted to creating my own bug fix which I’m releasing publicly this morning.

How this bug fix works

The install script downloads all the necessary files from my server and installs both an AppleScript and Shell script to a folder called iCalFix in your Applications folder.

The AppleScript is then assigned to a Mail Rule and runs whenever an iCal invitation is received. The AppleScript downloads the iCal file to a temporary location and the Shell script then runs on the temp file and replaces any incorrect timezone information.

Once completed the new iCal event is then imported to iCal with all the new timezone data in place. The beauty of this fix is that you don’t need to edit any of the package files for iCal and even your original iCal invitations are left untouched. This means that you can upgrade iCal at a later stage and you should be safe from any data corruption.

Installation

1. Download this Install Script to your computer and extract the contents from the ZIP file. The folder contains a Shell script (install.sh) which sets everything up for you.

ical-installfolder.png

2. Right-click on the install.sh file, select Open With and then click on Other.

ical-openwith.png

3. Click on Applications –> Utilities –> Terminal. If you can’t select Terminal from the Open dialog then select All Applications from drop-down list below.

ical-openterminal.png

4. Terminal will open up and the install script will run. When you see the message “Installation Complete.” you can close Terminal.

ical-terminal.png

5. You can now check if the bug fix was installed correctly by navigating to /Applications/iCalFix/ in Finder. If you see two files installed in that folder then installation was successful.

ical-folder.png

Setting up the Mail Rule

The last step before you can begin using this fix is to setup an email rule that calls the AppleScript file. Click on Mail –> Preferences –> Rules and create a new rule that looks identical to the one below.

ical-mailrules.jpg

If you’d like to read detailed instructions on setting up this particular Mail Rule then make sure you read the readme.txt file located in the Install Script package.

All done!

After completing the above steps any new iCal invitations sent from an Exchange server will automatically be converted to the right formats and you will never have an excuse to be 2 hours late for a meeting again!

I suggest that you test this fix out by sending an iCal event from an Exchange server to see if all is working correctly. If the fix isn’t working for you then your exchange server is probably using a different timezone format and you’ll need to read the section in the readme.txt file on customising timezone support for your country.

Caveats

  • NB: Make sure you open the readme.txt file in the Install Script folder. This readme file contains important information which isn’t included in this post.
  • This fix has only been tested on Mac OS X Leopard 10.5.1 and 10.5.2 and there is no guarantee that it will work on previous or future versions.
  • We’ve only been able to test this fix on three MacBook Pros and while it worked on all three YMMV. We’ve now tested it on about 10 Macs now and it has worked on every one we’ve tested thus far.
  • Before installing or running this fix make sure you backup your iCal first. In iCal click File –> Back up iCal… and save a backed up version to your computer.
  • When you recieve an Apple iCal invitation there is a message that pops up in iCal saying that “no data was added to iCal” but when you click OK the iCal event is loaded to iCal anyway. I’m not sure why this happens with iCal but I’m working on a fix for that.
  • I can’t provide support. If you want help in setting up a unique timezone regular expression then I’ll assist with that but any other queries I cant’t respond to – I just don’t have the time, sorry.

Peep on Gatorpeeps 

Share this post: Share this post with the world.
  • Gatorpeeps
  • Muti
  • Twitter
  • Posterous
  • Facebook
  • laaik.it
  • del.icio.us
  • Digg
  • Friendfeed
  • Google
  • LinkedIn
  • Ping.fm
  • Reddit
  • StumbleUpon
  • Technorati
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

66 Comments

I'd love to hear yours!



  1. Visit My Website

    April 8, 2008

    Permalink

    Dr. Strangeluv said:

    Hi Justin:

    I have not gotten a chance to try this since I don’t
    use Exchange (or iCal much for that matter). But, wouldn’t another possible solution be to create new zoneinfo database entries for MS Exchange time zones? Just curious. I’ve spent some time with them, but I don’t really consider myself an expert. I would not be surprised if this hasn’t already been done.



  2. Visit My Website

    April 8, 2008

    Permalink

    Andy Fragen said:

    I did something very similar using just a single AppleScript. I call it from the Script menu. It can be called from a Mail Rule as well. I was getting similar malformed time zone info from a Corporate server. The problem seems to have fixed itself but the script is available if you’re interested in another way to do it.

    As you’ve stated the TZ info is unique and the shell part of the script will need to be corrected for individual use.

    Let me know if you’re interested.

    Andy



  3. Visit My Website

    April 9, 2008

    Permalink

    Justin Hartman said:

    Dr. Strangeluv – I’ve tried this before to no avail. In fact trying to work with different zone files, or even editing the existing ones, has cause some major corruptions with iCal and I wouldn’t recommend this route. My fix keeps iCal and Mail completely free from any editing so you can upgrade easily and even the data is safe from corruption.

    Andy – please send it onto me justin (at) hartmanlife.com – I’d love to see what you’ve done and test it on my side. If we can simplify this process then it would be advantageous to everyone.



  4. Visit My Website

    April 8, 2008

    Permalink

    Dr. Strangeluv said:

    Hi Justin:

    I have not gotten a chance to try this since I don't
    use Exchange (or iCal much for that matter). But, wouldn't another possible solution be to create new zoneinfo database entries for MS Exchange time zones? Just curious. I've spent some time with them, but I don't really consider myself an expert. I would not be surprised if this hasn't already been done.



  5. Visit My Website

    April 8, 2008

    Permalink

    Andy Fragen said:

    I did something very similar using just a single AppleScript. I call it from the Script menu. It can be called from a Mail Rule as well. I was getting similar malformed time zone info from a Corporate server. The problem seems to have fixed itself but the script is available if you're interested in another way to do it.

    As you've stated the TZ info is unique and the shell part of the script will need to be corrected for individual use.

    Let me know if you're interested.

    Andy



  6. Visit My Website

    April 9, 2008

    Permalink

    Justin Hartman said:

    Dr. Strangeluv – I've tried this before to no avail. In fact trying to work with different zone files, or even editing the existing ones, has cause some major corruptions with iCal and I wouldn't recommend this route. My fix keeps iCal and Mail completely free from any editing so you can upgrade easily and even the data is safe from corruption.

    Andy – please send it onto me justin (at) hartmanlife.com – I'd love to see what you've done and test it on my side. If we can simplify this process then it would be advantageous to everyone.



  7. Visit My Website

    April 12, 2008

    Permalink

    Dion Forster said:

    Hi Justin,

    Thanks for this great post! I am also a Mac user (Macbook Pro) in a Windows Exchange environment. I have just joined the company where I am now and they are reluctant to allow me to use my Mac on the MS Exchange server. I would LOVE to be able to continue to use my Mac (Mail, iCal, and browsing the Web via a proxy – and then using a VPN connection via 3G to access the Exchange server when I am out and about).

    Are you able to point me to any user guides that I could use to set myself up for this? I would be truly grateful!

    Dion
    (South African blogger! http://www.spirituality.org.za/blogger.html)



  8. Visit My Website

    April 12, 2008

    Permalink

    Dion Forster said:

    Hi Justin,

    Thanks for this great post! I am also a Mac user (Macbook Pro) in a Windows Exchange environment. I have just joined the company where I am now and they are reluctant to allow me to use my Mac on the MS Exchange server. I would LOVE to be able to continue to use my Mac (Mail, iCal, and browsing the Web via a proxy – and then using a VPN connection via 3G to access the Exchange server when I am out and about).

    Are you able to point me to any user guides that I could use to set myself up for this? I would be truly grateful!

    Dion
    (South African blogger! http://www.spirituality.org.za/blogger.html)



  9. Visit My Website

    April 16, 2008

    Permalink

    Andy Fragen said:

    Justin,

    I’ve reworked the script a bit more and I think I’ve got it to where a simple property value change for what iCal expects from your system is all that’s needed for the script to work. If I can figure out where in the OS the time zone is stored then I think I can make the script work without any adjustments for anyone. I email’d the script to you.

    Andy



  10. Visit My Website

    April 16, 2008

    Permalink

    Andy Fragen said:

    Justin,

    I've reworked the script a bit more and I think I've got it to where a simple property value change for what iCal expects from your system is all that's needed for the script to work. If I can figure out where in the OS the time zone is stored then I think I can make the script work without any adjustments for anyone. I email'd the script to you.

    Andy



  11. Visit My Website

    April 22, 2008

    Permalink

    Ryan Hunt said:

    Hi there, I work in London and deal a lot with those in West Coast US, and those in Tallinn (Helsinki is the closest timezone). I found these regex rules work for me:

    #London – Ryan Hunt
    perl -pi -e ’s/\”Greenwich\ Mean\ Time\ \:\ Dublin\,\ Edinburgh\,\ Lisbon\,\s/Europe\//g’ $ICSFILE
    perl -pi -e ’s/\s\sLondon\”/London/g’ $ICSFILE
    perl -pi -e ’s/Greenwich\sMean\sTime\s\:\sDublin\,\sEdinburgh\,\sLisbon\,\sLondon/Europe\/London/g’ $ICSFILE

    #West Coast USA – Ryan Hunt
    perl -pi -e ’s/\(GMT\-08\.00\)\ Pacific\ Time\ \(US\ \&\ Canada\)\/Tijuana/US\/Pacific/g’ $ICSFILE

    #Tallinn – Ryan Hunt
    perl -pi -e ’s/Helsinki\\\,\ Kyiv\\\,\ Riga\\\,\ Sofia\\\,\ Tallinn\\\,\ Vilnius/Europe\/Helsinki/g’ $ICSFILE
    perl -pi -e ’s/Helsinki\,\ Kyiv\,\ Riga\,\ Sofia\,\ Tallinn\,\ Vilnius/Europe\/Helsinki/g’ $ICSFILE



  12. Visit My Website

    April 22, 2008

    Permalink

    Andy Fragen said:

    Ryan,
    I’ve got a one liner in my AppleScript that should grab the Exchange TZID and put it to a variable. Then all you have to do is set the location of the Exchange server in a format iCal expects. The line is the following.

    set exchange_tzid to do shell script “grep -o ^TZID.*$ ” & tPath & ” | sed -e ’s|TZID:\\(.*\\)|\\1|g’”

    I think that should grab the Exchange TZID no matter what it is.



  13. Visit My Website

    April 22, 2008

    Permalink

    Ryan Hunt said:

    Hi there, I work in London and deal a lot with those in West Coast US, and those in Tallinn (Helsinki is the closest timezone). I found these regex rules work for me:

    #London – Ryan Hunt
    perl -pi -e 's/”Greenwich Mean Time : Dublin, Edinburgh, Lisbon,s/Europe//g' $ICSFILE
    perl -pi -e 's/ssLondon”/London/g' $ICSFILE
    perl -pi -e 's/GreenwichsMeansTimes:sDublin,sEdinburgh,sLisbon,sLondon/Europe/London/g' $ICSFILE

    #West Coast USA – Ryan Hunt
    perl -pi -e 's/(GMT-08.00) Pacific Time (US & Canada)/Tijuana/US/Pacific/g' $ICSFILE

    #Tallinn – Ryan Hunt
    perl -pi -e 's/Helsinki\, Kyiv\, Riga\, Sofia\, Tallinn\, Vilnius/Europe/Helsinki/g' $ICSFILE
    perl -pi -e 's/Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius/Europe/Helsinki/g' $ICSFILE



  14. Visit My Website

    April 22, 2008

    Permalink

    Andy Fragen said:

    Ryan,
    I've got a one liner in my AppleScript that should grab the Exchange TZID and put it to a variable. Then all you have to do is set the location of the Exchange server in a format iCal expects. The line is the following.

    set exchange_tzid to do shell script “grep -o ^TZID.*$ ” & tPath & ” | sed -e 's|TZID:\(.*\)|\1|g'”

    I think that should grab the Exchange TZID no matter what it is.



  15. Visit My Website

    April 23, 2008

    Permalink

    Ryan Hunt said:

    OK, I’ve figured out what this script is doing, it will modify the attachment and then open the modified Attachment in iCal. Is there anyway to modify the attachment and then actually modify the message on the server with the new invite? I.e if I forget about this meeting and I double click again (later) it gives me the wrong time.



  16. Visit My Website

    April 23, 2008

    Permalink

    Ryan Hunt said:

    OK, I've figured out what this script is doing, it will modify the attachment and then open the modified Attachment in iCal. Is there anyway to modify the attachment and then actually modify the message on the server with the new invite? I.e if I forget about this meeting and I double click again (later) it gives me the wrong time.



  17. Visit My Website

    April 23, 2008

    Permalink

    Andy_Fragen said:

    Ryan, you could probably just run the AppleScript from the System AppleScript menu on the original email invite. If that doesn’t work I may have solution that will.



  18. Visit My Website

    April 23, 2008

    Permalink

    Andy_Fragen said:

    Ryan, you could probably just run the AppleScript from the System AppleScript menu on the original email invite. If that doesn't work I may have solution that will.



  19. Visit My Website

    April 24, 2008

    Permalink

    paul tomes said:

    Justin … good afternoon. Many thanks for posting the fix. I have just downloaded it and followed all the steps … I am Cape Town based so felt I didn’t need to worry about time zone … but I took an existing calender request sitting in my inbox which i hadn’t opened and double clicked it … the calendar entry was still 2 hours later … I then changed my mail preferences to automatically add calendar entries and then forwarded the meeting request to myself. when the mail came through it entered it … but 2 hours late! … could you tell me what i may have done wrong? … running I-mac OSX ver 10.5 … many thanks Paul Tomes



  20. Visit My Website

    April 24, 2008

    Permalink

    Dave Shrein said:

    Ryan,

    I could not get the instructions to work… It was a bit over my head… would you be able to help me?

    http://www.daves-office.com/documents/icalerror.zip

    I posted the two events in there labeled… any help would be much appreciate it!

    Dave



  21. Visit My Website

    April 24, 2008

    Permalink

    paul tomes said:

    Justin … good afternoon. Many thanks for posting the fix. I have just downloaded it and followed all the steps … I am Cape Town based so felt I didn't need to worry about time zone … but I took an existing calender request sitting in my inbox which i hadn't opened and double clicked it … the calendar entry was still 2 hours later … I then changed my mail preferences to automatically add calendar entries and then forwarded the meeting request to myself. when the mail came through it entered it … but 2 hours late! … could you tell me what i may have done wrong? … running I-mac OSX ver 10.5 … many thanks Paul Tomes



  22. Visit My Website

    April 24, 2008

    Permalink

    Dave Shrein said:

    Ryan,

    I could not get the instructions to work… It was a bit over my head… would you be able to help me?

    http://www.daves-office.com/documents/icalerror...

    I posted the two events in there labeled… any help would be much appreciate it!

    Dave



  23. Visit My Website

    April 25, 2008

    Permalink

    Nicola Aspinall said:

    Hi Justin,

    Thanks for the really helpful post. I am a home mac user and at work we use Exchange so when I have it all running properly this fix will be great for me. I am a recent mac user and not very technical when it comes to scrips so I am a little confused how to customize the timezone for my country.

    I have opened an ics file in TextEdit and though it does not note GMT+ whatever, here is what I have:

    DTSTART;TZID=E. Australia Standard Time:20080428T170000

    In iCal it would be:
    DTSTART;TZID=Australia/Sydney:20080428T170000

    Ca you please assist in advising what I am supposed to modify the fix_timezone.sh file with?

    Cheers.



  24. Visit My Website

    April 25, 2008

    Permalink

    Nicola Aspinall said:

    Hi Justin,

    Thanks for the really helpful post. I am a home mac user and at work we use Exchange so when I have it all running properly this fix will be great for me. I am a recent mac user and not very technical when it comes to scrips so I am a little confused how to customize the timezone for my country.

    I have opened an ics file in TextEdit and though it does not note GMT+ whatever, here is what I have:

    DTSTART;TZID=E. Australia Standard Time:20080428T170000

    In iCal it would be:
    DTSTART;TZID=Australia/Sydney:20080428T170000

    Ca you please assist in advising what I am supposed to modify the fix_timezone.sh file with?

    Cheers.



  25. Visit My Website

    May 5, 2008

    Permalink

    Mike said:

    I. Love. You. I really do.



  26. Visit My Website

    May 5, 2008

    Permalink

    Steve said:

    Justin, thanks for the post, the only problem i have is when i create a local ical to check the format i don’t get any timezone info:

    BEGIN:VCALENDAR

    X-WR-CALNAME:test2

    PRODID:-//Apple Inc.//iCal 3.0//EN

    CALSCALE:GREGORIAN

    VERSION:2.0

    METHOD:PUBLISH

    END:VCALENDAR

    what am i doing wrong? I’m GMT+4 in Dubai, I’m guessing the key may be muscat/oman based on date and time, can you give me any pointers?

    Many thanks,

    Steve.



  27. Visit My Website

    May 5, 2008

    Permalink

    Steve said:

    Justin,

    Figured it out – top right hand corner of my iCal displays “Asia/Muscat”, exchange server is only sending through “GMT +0400 (Standard) / GMT +0400 (Daylight)” rather than any location details.

    So modified the second line of the script to:
    perl -pi -e ’s/GMT\ \+0400\ \(Standard\)\ \/\ GMT\ \+0400\ \(Daylight\)/Asia\/Muscat/g’ $ICSFILE

    Works a treat! thanks for the original post, hope this might help some others.

    Steve.



  28. Visit My Website

    May 5, 2008

    Permalink

    Mike said:

    I. Love. You. I really do.



  29. Visit My Website

    May 5, 2008

    Permalink

    Steve said:

    Justin, thanks for the post, the only problem i have is when i create a local ical to check the format i don't get any timezone info:

    BEGIN:VCALENDAR

    X-WR-CALNAME:test2

    PRODID:-//Apple Inc.//iCal 3.0//EN

    CALSCALE:GREGORIAN

    VERSION:2.0

    METHOD:PUBLISH

    END:VCALENDAR

    what am i doing wrong? I'm GMT+4 in Dubai, I'm guessing the key may be muscat/oman based on date and time, can you give me any pointers?

    Many thanks,

    Steve.



  30. Visit My Website

    May 5, 2008

    Permalink

    Steve said:

    Justin,

    Figured it out – top right hand corner of my iCal displays “Asia/Muscat”, exchange server is only sending through “GMT +0400 (Standard) / GMT +0400 (Daylight)” rather than any location details.

    So modified the second line of the script to:
    perl -pi -e 's/GMT +0400 (Standard) / GMT +0400 (Daylight)/Asia/Muscat/g' $ICSFILE

    Works a treat! thanks for the original post, hope this might help some others.

    Steve.



  31. Visit My Website

    June 10, 2008

    Permalink

    Robert Zomer said:

    Justin… Hi… sorry, haven’t been able to figure out how to modify the script…

    I’m in Katmandu GMT +5:45

    this is the exchange ics:

    PRODID:Microsoft Exchange Server 2007
    VERSION:2.0
    BEGIN:VTIMEZONE
    TZID:Nepal Standard Time
    BEGIN:STANDARD
    DTSTART:16010101T000000
    TZOFFSETFROM:+0545
    TZOFFSETTO:+0545
    END:STANDARD
    BEGIN:DAYLIGHT
    DTSTART:16010101T000000
    TZOFFSETFROM:+0545
    TZOFFSETTO:+0545

    DTSTART;TZID=Nepal Standard Time:20080613T110000
    DTEND;TZID=Nepal Standard Time:20080613T120000

    Thanks… Bob



  32. Visit My Website

    June 10, 2008

    Permalink

    Robert Zomer said:

    Justin… Hi… sorry, haven't been able to figure out how to modify the script…

    I'm in Katmandu GMT +5:45

    this is the exchange ics:

    PRODID:Microsoft Exchange Server 2007
    VERSION:2.0
    BEGIN:VTIMEZONE
    TZID:Nepal Standard Time
    BEGIN:STANDARD
    DTSTART:16010101T000000
    TZOFFSETFROM:+0545
    TZOFFSETTO:+0545
    END:STANDARD
    BEGIN:DAYLIGHT
    DTSTART:16010101T000000
    TZOFFSETFROM:+0545
    TZOFFSETTO:+0545

    DTSTART;TZID=Nepal Standard Time:20080613T110000
    DTEND;TZID=Nepal Standard Time:20080613T120000

    Thanks… Bob



  33. Visit My Website

    July 22, 2008

    Permalink

    egxis said:

    I have provided some basic instructions for those not-so-technical folks on installing Andy’s fix:

    1. Delete the original event from your iCal and don’t notify the sender.

    2. Save the following file [ http://thefragens.com/pub/MailExchange2iCal-TZ-fix.scpt ] to the following location:
    yourname\Library\Mail\

    3. Edit the file ~\Library\Mail\MailExchange2iCal-TZ-fix.scpt and adjust the value of the property field, to your appropriate timezone, in Justin’s example that would be:
    property ical_tzid : “Africa/Johannesburg”

    4. Save the MailExchange2iCal-TZ-fix.scpt file

    5. Create a new Mail rule
    a. Mail -> Preferences -> Rules -> Add Rule
    i. Description
    ii. If
    iii. Perform
    b. Click “OK” and then “Apply”

    6. Open the invite which was originally sent to you, check the time in iCal, and accept if it’s correct.

    7. Done.



  34. Visit My Website

    July 22, 2008

    Permalink

    egxis said:

    Hmmm, your blog software filtered out some of my comments.

    Step 5, fixed:
    5. Create a new Mail rule
    a. Mail -> Preferences -> Rules -> Add Rule
    i. Description “Fix Microsoft Invites”
    ii. If “Any” “Attachment Name” “ends with” “.ics”
    iii. Perform “Run AppleScript” “~\Library\Mail\MailExchange2iCal-TZ-fix.scpt”
    b. Click “OK” and then “Apply”



  35. Visit My Website

    July 22, 2008

    Permalink

    egxis said:

    I have provided some basic instructions for those not-so-technical folks on installing Andy's fix:

    1. Delete the original event from your iCal and don't notify the sender.

    2. Save the following file [ http://thefragens.com/pub/MailExchange2iCal-TZ-... ] to the following location:
    yournameLibraryMail

    3. Edit the file ~LibraryMailMailExchange2iCal-TZ-fix.scpt and adjust the value of the property field, to your appropriate timezone, in Justin's example that would be:
    property ical_tzid : “Africa/Johannesburg”

    4. Save the MailExchange2iCal-TZ-fix.scpt file

    5. Create a new Mail rule
    a. Mail -> Preferences -> Rules -> Add Rule
    i. Description
    ii. If
    iii. Perform
    b. Click “OK” and then “Apply”

    6. Open the invite which was originally sent to you, check the time in iCal, and accept if it's correct.

    7. Done.



  36. Visit My Website

    July 22, 2008

    Permalink

    egxis said:

    Hmmm, your blog software filtered out some of my comments.

    Step 5, fixed:
    5. Create a new Mail rule
    a. Mail -> Preferences -> Rules -> Add Rule
    i. Description “Fix Microsoft Invites”
    ii. If “Any” “Attachment Name” “ends with” “.ics”
    iii. Perform “Run AppleScript” “~LibraryMailMailExchange2iCal-TZ-fix.scpt”
    b. Click “OK” and then “Apply”



  37. Visit My Website

    August 5, 2008

    Permalink

    Dan said:

    Hi Justin,

    Thanks for the helpful info. I’m going to need a little help with the timezone data. Here’s what I have:

    Exchange data received:
    DTSTART;TZID=”(GMT-07.00) Arizona”:20080827T090000

    My iCal data:
    DTSTART;TZID=America/Phoenix:20080828T180000

    I appreciate it!!



  38. Visit My Website

    August 5, 2008

    Permalink

    Dan said:

    Totally awesome – I’ve just used the instruction in the previous posts and it works a treat. No longer will I be 2 hours early to client meetings!

    Thanks heaps.

    Dan.



  39. Visit My Website

    August 5, 2008

    Permalink

    Dan said:

    Hi Justin,

    Thanks for the helpful info. I'm going to need a little help with the timezone data. Here's what I have:

    Exchange data received:
    DTSTART;TZID=”(GMT-07.00) Arizona”:20080827T090000

    My iCal data:
    DTSTART;TZID=America/Phoenix:20080828T180000

    I appreciate it!!



  40. Visit My Website

    August 5, 2008

    Permalink

    Dan said:

    Totally awesome – I've just used the instruction in the previous posts and it works a treat. No longer will I be 2 hours early to client meetings!

    Thanks heaps.

    Dan.



  41. Visit My Website

    August 6, 2008

    Permalink

    Dan said:

    ok – I used the script file in the post 5 above this. But It actually doesn’t seem t work properly for new emails. It does work but only when I tell mail to Apply the rules to that message after it has arrived.

    So Now I am trying to use Justin’s original fix – but the reg-ex part is not my game – I need help :)

    DTSTART;TZID=”(GMT+10.00) Brisbane/East Australia”:20080812T120000

    That is my servers timezone.
    Cheers.



  42. Visit My Website

    August 6, 2008

    Permalink

    Andy_Fragen said:

    In deference to Justin, I’m sure some of these comments are becoming quite confusing. The changing references between his scripts and mine. It might be better to move the discussion of my script over to my script’s page.

    Dan, I’m happy to try and work with you or anyone else in getting my script to function as you’d expect it to.



  43. Visit My Website

    August 6, 2008

    Permalink

    Andy_Fragen said:

    Dan, I may have found a fix for my script not working properly for new emails.



  44. Visit My Website

    August 6, 2008

    Permalink

    Dan said:

    ok – I used the script file in the post 5 above this. But It actually doesn't seem t work properly for new emails. It does work but only when I tell mail to Apply the rules to that message after it has arrived.

    So Now I am trying to use Justin's original fix – but the reg-ex part is not my game – I need help :)

    DTSTART;TZID=”(GMT+10.00) Brisbane/East Australia”:20080812T120000

    That is my servers timezone.
    Cheers.



  45. Visit My Website

    August 6, 2008

    Permalink

    Andy_Fragen said:

    In deference to Justin, I'm sure some of these comments are becoming quite confusing. The changing references between his scripts and mine. It might be better to move the discussion of my script over to my script's page.

    Dan, I'm happy to try and work with you or anyone else in getting my script to function as you'd expect it to.



  46. Visit My Website

    August 6, 2008

    Permalink

    Andy_Fragen said:

    Dan, I may have found a fix for my script not working properly for new emails.



  47. Visit My Website

    August 28, 2008

    Permalink

    Jon said:

    The iCal error reported is caused by a missing “exit 0″ line at the end of the fix_timezone.sh script.



  48. Visit My Website

    August 28, 2008

    Permalink

    Apple iCal / Microsoft Exchange fix version 1.2 released by Justin Hartman said:

    [...] thing then why not join my email list by clicking here. Thanks for stopping by.I have updated the Apple iCal / Microsoft Exchange fix for Leopard with a bug fix and a few [...]



  49. Visit My Website

    August 28, 2008

    Permalink

    Justin Hartman said:

    Hi Guys. I've just released version 1.2 of this script. More details can be found over here:
    http://justinhartman.com/2008/08/28/apple-ical-...



  50. Visit My Website

    August 30, 2008

    Permalink

    Anna said:

    I just bot a new Mac. I just registered but when logging in the mac address does not recognize me. I have been working with best buy and apple store. I still have not resolved the problem. I may have to return the machine since I cannot get an email address. I really want the mac but seems no one can help me. What can I do?



  51. Visit My Website

    September 6, 2008

    Permalink

    iCal to Exchange before Snow Leopard | Tongfamily.com said:

    [...] are real issues like Justin point out. Exchange uses non-standard time formats like (GMT+02.00) Harare/Pretoria whereas Apple [...]



  52. Visit My Website

    September 26, 2008

    Permalink

    Atul said:

    hey Justin, thanks for the script. I was able to replace only first instance but not the other two due to line breaks can you please help.

    (GMT+05.30) Calcutta/Chennai/Mumbai/New Delhi/India Standard Time
    “(GMT+05.30) Calcutta/Chennai/Mumbai/New Delhi/India Standard
    Time”
    (GMT+05.30) Calcutta/Chennai/Mumbai/New Delhi/India Standard Ti
    me”
    perl -pi -e ’s/\(GMT\+05\.30\)\ Calcutta\/Chennai\/Mumbai\/New Delhi\/India Standard Time/Asia\/Calcutta/g’ $ICSFILE



  53. Visit My Website

    September 26, 2008

    Permalink

    Andy_Fragen said:

    Atul, that is the most seriously screwed up TZID I’ve ever seen. You should complain to whomever runs the Exchange server to shorten it/fix it.



  54. Visit My Website

    September 27, 2008

    Permalink

    Andy_Fragen said:

    Atul, you may also want to see if my script will work for you. Can’t make any promises.



  55. Visit My Website

    September 27, 2008

    Permalink

    Atul said:

    Thanks it works for me.



  56. Visit My Website

    September 29, 2008

    Permalink

    Annette said:

    Hi there,
    I really tried to work out what I was supposed to do here but three hours later I have given up!
    Please help!!

    Incorrect time on incoming calendar
    DTSTART;TZID=E. Australia Standard Time:20080922T110000
    DTEND;TZID=E. Australia Standard Time:20080922T120000

    Time displayed in my calendar
    DTSTART;TZID=Australia/Brisbane:20080929T150000



  57. Visit My Website

    September 29, 2008

    Permalink

    Andy_Fragen said:

    Annette, see comment #54.



  58. Visit My Website

    September 30, 2008

    Permalink

    Chris said:

    Hi there,
    I’ve tried my best to sort this out by I’m afraid I’ll be needing a little help.
    Here’s the info as it appears in the invites :
    DTSTART;TZID=Korea Standard Time:20081003T113000

    I sent myself an invite from iCal but the format isn’t as would be expected. I get :
    DTSTART;VALUE=DATE:20081003

    I believe it should be something like :
    DTSTART;TZID=Australia/Brisbane:XXXXXXXXXXX

    Any help would be greatly appreciated.
    Thanks again !



  59. Visit My Website

    September 30, 2008

    Permalink

    David said:

    Justin – you are DA MAN!



  60. Visit My Website

    October 6, 2008

    Permalink

    Peter O’Hanlon said:

    This script is great! Solved the problem for me, after hours of trying to get through to Apple support with nobody answering and the iStore with the answer that “The Mac can’t talk to Microsoft Outlook”.

    Thanks again.



  61. Visit My Website

    October 13, 2008

    Permalink

    Simon said:

    You’re a legend!

    I’ve also been looking for a solution to this problem for some time and then came across a link to this post from the Apple support forums.

    Finally, I can kick Entourage and get back to iCal. Thanks dude =)



  62. Visit My Website

    January 14, 2009

    Permalink

    Zoltan said:

    After installing your script as you described, I
    noticed that all the files, including the script itself
    has a read and write permission for everyone in
    my Applications folder.

    Isn’t it dangerous to have a chmod -R 0777 ?



  63. Visit My Website

    March 6, 2009

    Permalink

    Jeff said:

    Have you look at using SyncEm to do Exchange to iCal syncing?



  64. Visit My Website

    June 22, 2009

    Permalink

    Tom said:

    Hi Justin,

    Not sure if you have a sec to help, but I have a similar issue with invites from Lotus Notes where they appear an hour later in iCal.

    Looking at the invites from Notes, I see the following:

    DTSTART;TZID=”GMT”:20090622T130000

    And in an invite sent to myself from iCal the following:

    DTSTART;TZID=Europe/London:20090622T160000

    (note these meetings are at 2 different times)

    So it looks like I need to translate “GMT” to “Europe/London”. If I’ve assumed correctly, any chance you could help with the regex?

    Thanks,

    Tom



  65. Visit My Website

    September 20, 2009

    Permalink

    Surgical Diversions » iCal – Exchange Time Zone Fix said:

    [...] Justin Hartman has recently given you his solution to this problem. I haven’t tested it but in looking at it I’m certain it works just fine. I say this because he’s fixing the problem is a similar manner. It’s just that he’s using a combination of shell scripts and AppleScripts. I’ve got it down to a single AppleScript. [...]



  66. Visit My Website

    December 9, 2009

    Permalink

    Melanie Wert said:

    Is there anything I can do for Snow Leopard?? I am having the same issues with the invitations in iCal coming from our Exchange Server. HHHEEEELLLLPPPP!!



Leave a Comment

Here's your chance to speak.

  1. Name (required)

    Mail (required)

    Website

    Message

  • About me

    I am the MD and co-founder of Afrigator - Africa's largest social media aggregator and blog directory. This blog is mostly about my life, experience running a startup and thoughts on technology that I encounter along the way... read more.
  • Stuff I’ve written

    • Audi MVP Day
    • I’ve made it to the finals
    • ad:tech, Adgator and me – it’s the perfect fit
    • Twitter introduces lists and becomes a lot more useful
    • England, thanks for ruining cricket for my son
  • What people are saying

    • Justin Hartman on I’ve made it to the finals
    • Laurence on England, thanks for ruining cricket for my son
    • Craig on I’ve made it to the finals
    • e_muve on Nokia 5530 XpressMusic iSync Plugin
    • e_muve on Nokia 5530 XpressMusic iSync Plugin
© 2008 Justin Hartman - Living Life. Running a Startup. Loving Technology. Web Hosting Sponsored by WPWebHost.
Afrigator