iCal time zones

In a strange temporal coincidence a discussion started in The Well’s Mac conference the other day about the way iCal handles time zones. It appears to have exactly the same kind of problem Movable Type has (discussed in my previous post): If you change the time zone of your Mac, via the Date & Time preferences, then the times of all your iCal appointments change in a way that is, shall we say, less than optimal.

For example, let’s pretend I’m going to visit Danny in California and he’s arranged a Welcome to CA meal at 8pm on Thursday. So, here in London, I enter the time into iCal… Thursday, 8pm, meal at Danny’s.

Come Thursday I fly west, collecting yet more Virgin Atlantic pens, and land eight time zones away in California. Once through security and customs I realise that what with jetlag and everything I’ve forgotten exactly when I need to be at Danny’s. So I wake my laptop and, being organised, immediately change its time zone to that of the west coast. I open iCal and it tells me the meal begins at midday. Better hurry!

I couldn’t quite believe iCal could be so dumb, but it’s true. Try it. Set an appointment (or note the time of an existing one), close iCal, change your time zone, open iCal and voila… all your appointment times will have changed. (Now close iCal and change the time zone back again before you get even more confused.)

The more obvious way to work (and the way Palm Desktop handles it) is for none of the scheduled times to change when the computer’s time zone alters. It’s what you’d expect.

This alone would remove all problems however. Let’s say that right now I notice Steve Jobs is going to be giving a keynote speech at some event in New York on Friday at 9am Eastern time. That’s 2pm in the UK, so I mark it in my diary for then (I don’t want to miss him announcing any new PowerBooks!). The night before I check iCal to remind myself when the Stevenote is. But on Thursday night I’m at Danny’s in California. iCal’s doing things “properly” and still says Steve’s on at 2pm, but now I can’t remember if that’s Pacific, Eastern or UK time!

The best solution, as for Movable Type, may be to store the time zone of an event with its date and time. The default would be that of the computer when the appointment is made, but it could be changed with a pop-up for when travelling or wanting to watch CEOs work their magic in other continents.

But when I start thinking about whether this would all fall apart when countries put their clocks forward and back on different dates I’m tempted to think the simplest solution is to never leave the country.

Comments

  • I seem to remember reading on a rumours board that this timezone problem is fixed in the next version of iCal, which comes with Mac OS X 10.3. (And there’s a global option for two different timezone-handling behaviours.)

    No link though, sorry.

  • Perhaps if apple followed the icalendar RFC there would be less trouble.

    I suppose they might have scrapped the notion, just because some MS people wrote or helped write the RFC. Of course I am kidding about that, just a little.

    The issue is that there is not really a standard time zone definition. Timezone data is actually pretty complicated. Parts of the world believe in the wisdom of Benjamin Franklin, while others likely have their own conception of what time it is. And it even goes a little deeper than that.

    The times should probably be stored in UTC, or Zulu time and the machine should figure out what the heck time it is for the user.

    However, I believe that the apple people (and some others) decided to store the times in the local machine format, then try to put the local machine timezone in the file. However, if you are trying to tell someone else what time your appointment is, they can’t absolutely figure out what you mean by “your timezone” because there truly isn’t a standard way of describing such a thing.


    Check it out.

    Take care,

    Waitman Gobble