2.3.1 Time Zones and Daylight Saving Time

Dates and times can be very simple in calendars that are not shared. All times can be in device-local time, and there is no need for time zones or Daylight Saving Time (DST). If a meeting is scheduled for 10:00 A.M., it is in device time and, if the user of the device travels to another time zone, he or she adjusts the device time, but the meeting time remains at 10:00 A.M. If DST begins, the device time is adjusted again, but the meeting time remains at 10:00 A.M.

Dates and times become more complex when calendar events are shared by people who are in different time zones and are not all on DST. If Sean in Seattle schedules a 10:00 A.M. conference call with Nick in New York, the meeting will appear at 1:00 P.M. on Nick’s calendar. If Jeff in Arizona is also on the call, he sees the meeting in his local time on his calendar. Because Arizona does not observe DST, the meeting is shown at 11:00 A.M. if it is the winter, but at 10:00 A.M. if it is the summer. If the meeting is recurring, then the dates and times are more complex during the transitions between DST and standard time. The following table lists the local and UTC times for a 10:00 A.M. meeting the weeks before and after the transition to DST.

Date

Seattle

Arizona

New York

UTC

4/4/03

10:00 Pacific Time (PT)

11:00 MST (Mountain Standard Time)

13:00 Eastern Standard Time (EST)

18:00 UTC

4/11/03

10:00 Pacific Daylight Time (PDT)

10:00 MST

13:00 Eastern Daylight Time (EDT)

17:00 UTC

The Seattle time remains the same before and after the transition to DST because the meeting organizer is in Seattle. If the organizer was Jeff in Arizona, then the meeting times before and after the DST transition would be different, as shown in the following table.

Date

Seattle

Arizona

New York

UTC

4/4/03

10:00 PT

11:00 MST

13:00 EST

18:00 UTC

4/11/03

11:00 PDT

11:00 MST

14:00 EDT

18:00 UTC

The shared Meeting object in the calendar application stores the following information. For a one-time meeting, the UTC time alone can be stored, and each device can translate to its local time by using its local time zone information. The time zone information includes a permanent time zone offset and, if appropriate, DST start and end dates, and time bias.

If the meeting is recurring, however, the UTC time can change depending on whether DST is in effect at the originator's location for each occurrence. The constant is the time in the originator's time zone, which is the time that is stored. In addition, the originator's time zone is stored. To display a meeting time, the time is converted to UTC by using the originator's time zone, and then it is converted to local time by using the device's local time zone.

Note: The UTC time can be stored instead of the originator's local time. But the originator's time zone is also stored. This feature allows for the DST adjustment, although the calculation is somewhat less intuitive.

If this recurring meeting has an exception, then the exception contains the date and time of the series instance that is different. As with the series itself, the UTC of the exception varies based on DST. Therefore, the originator's time zone is used to calculate the time of the exception. Because the originator's time zone is stored with the recurrence, it is not necessary to store the time zone again for each exception.