Crowley Code! 
 (Take 12)

iCal timezones are wrong 2008/01/29

A bit ranty, proceed.

The designers of iCal did it wrong.  I applaud them for including timezone support at all because of the can-of-worms I envision it being.  Dates are scary in the parsing sense.  For the uninitiated, here's about how iCal works now:

You can enable timezone support (rightfully off by default as it adds clutter that 90% will never click) in Preferences and then have an editable timezone option for every event on your calendar.  This part will be strange in text but I'll try: changing the timezone on a single event will cause that event's block of time (in week view or day view) to shift up or down by the offset between your home timezone and the event timezone.  Easy-to-follow example: an event in St. Louis (Central Time) at 10:00 am appears at 8:00 am on my calendar because I'm in Pacific Time.

The right way is to allow setting entire days to a certain timezone.  Perhaps this setting would be inferred from a multi-day event on your calendar or (bonus!  a feed imported from Dopplr?  Tying a timezone to a multi-day event would be sweet as it could be expanded to start and stop at certain times of day, thereby satisfying even the craziest of travellers.  Assuming this default would eliminate my need to micromanage my calendar.

Benefits?  I could say (to my computer, with mouse clicks), "I will be in the Central timezone from February 1st until February 9th, please show those day's events accordingly." If an event is scheduled on a day that I'm slated to be in the Central timezone, it should always be shown as if it is in the Central timezone.  Displaying everything in the current timezone just makes me do extra math.

The tradeoff in design here is day-to-day consistency versus the rate at which I can consume information from my calendar.  I can understand why Apple's designers made the decision they did but respectfully disagree.  It is much easier to casually remember where I'll be at any given time (in the macro sense) but much more difficult to remember that I must constantly do timezone math when looking ahead on my calendar.

Comments (6)

  1. The reason you're wrong is that iCal can show a lot more than just the owner's events: I'm subscribed to calendars for most of my coworkers, and if one of them has something going on in a different timezone, I want to know how that connects with my own schedule in the my current timezone. Often I enter events in other timezones for myself, for example calls with clients who send reminders from their own context. I think it's important for events to be consistent in relation to one another, and fortunately the inclusion of a zone switcher in the upper-right corner of the iCal window makes it easy to not have to do math as well.

    Michal Migurski — 2008/01/29 11:23 pm

  2. I enter almost all my flights in iCal and I agree with you (sort of).  It would be lovely to somehow mark that when I get off a certain flight, I will now be in a different time zone.  This switch will do 2 things simultaneously, change the view for that time period to the new time zone and change the events entered during that period to the new timezone.  And then when I plan that trip, I can enter the events using St. Louis time and iCal knows I'll be in St. Louis and enter the time in a natural way.  And you look at your calendar in a natural way.  Since I prefer my calendar to look this way, I personally leave time zone support off and just act like iCal is doing that.  If I had coworkers that subscribed to my calendar, it would break their subscriptions to my life, but luckily I don't.

    I wouldn't say what it does now is wrong though.  It also has a valid use case.  Someone in NYC says they'll be in a meeting 2-5.  You right click on that from Mail and add an event.  The automatic parsing didn't recognize that as NYC though, so you change the time zone of the event.  Also, if there's a conference call you're supposed to be on in SF during the time you're in St. Louis, you can change it's timezone to US/PST to make it easier to enter.

    The user interface of doing this would have to be very carefully implemented though.  I could see things going horribly wrong, especially for travel crossing the International Date Line where you could have events at the "same time", but I put my faith in apple's designers to go through hundreds of mock-ups to get that right.

    David Hall — 2008/01/30 6:14 am

  3. You both have very good points on my system breaking down when multiple timezones are present on the same day.  I'll back off the rant-iness and say that they're wrong for me.  There's got to be some 80-20 rule here relating to most people using iCal in a vacuum.

    Richard Crowley — 2008/01/30 7:45 am

  4. I agree with the first poster..  I have lots of events on my calendar (not in iCal, unfortunately) that are either CST or EST and I think the correct behavior is for them to show up on my calendar at the time they're going to occur in my current time zone.

    I haven't tried it, but I bet you can get the results you want by changing your computer's timezone instead of changing things in iCal. That's probably what the iCal developers expected, anyways. When you go to the east coast, you change your computer's TZ to EST and all your events shift accordingly. Unfortunately, that doesn't help with your TZ math while you're sitting here in California trying to decide whether you're available for a meeting at 10am on the east coast. You could try changing your TZ temporarily, I suppose, or just try adding the event and seeing if it overlaps with something else in iCal..  but I definitely think the use case for TZ tied to events is much more common -- people have meetings with people in different timezones a lot more often than they actually visit different timezones.

    Mike Malone — 2008/01/30 8:56 am

  5. What Mike said.

    Also tying timezones to specific events is the *only* way to maintain sanity, down all other routes lies madness.  (also known as Palm's calendaring)

    kellan — 2008/01/30 11:28 am

  6. We should just get rid of timezones and just use the same time. On the east coast you go to work from GMT 12pm to 8pm and on the west coast you work from 3pm to 11pm.

    Now everyone knows what time your meeting is because we all speak the same time 'language'. None of this 'what time is it over there?'.

    — Colin — 2008/10/01 7:05 am

Richard Crowley?  Kentuckian engineer who cooks and eats in between bicycling and beering.

I blog mostly about programming and databases.  Browse by month or tag.

To blame for...


© 2009 Richard Crowley.  Managed by Bashpress.