3.1.5.5.2 Data Interpretation for Time Zone Updates

The TZRule structure that is marked with the TZRULE_FLAG_EFFECTIVE_TZREG flag in the PidLidAppointmentTimeZoneDefinitionStartDisplay property (section 2.2.1.42) indicates the TZRule structure with which the Appointment object's times were converted to UTC time when the object was created. In some cases, the time zone rule (2) that is in effect for the given time zone will be updated after the object is created.

When the client detects that the time zone rule (2) for the time zone specified by the PidLidAppointmentTimeZoneDefinitionStartDisplay property has been updated, the client SHOULD<92> continue to interpret the PidLidAppointmentStartWhole (section 2.2.1.5) and PidLidAppointmentEndWhole (section 2.2.1.6) properties so that the values occur at the same time that was specified when the object was created. For example, if a user creates an Appointment object to begin at 2:00 P.M. on April 1 in a time zone that has a -8 offset from UTC, the PidLidAppointmentStartWhole property would have been saved as 10:00 P.M. UTC. If after creating this object, the time zone specified in the PidLidAppointmentTimeZoneDefinitionStartDisplay property is updated such that on April 1 the time zone's offset from UTC is now -7, the object's start time continues to be interpreted as 2:00 P.M. when the value of the PidLidAppointmentStartWhole property is converted to that same time zone. The client can detect and perform these calculations using the data specified in the PidLidAppointmentTimeZoneDefinitionStartDisplay property. When performing these calculations, the value of the PidLidAppointmentTimeZoneDefinitionStartDisplay property is to be used for all time properties, including the PidLidAppointmentEndWhole property.

If the object's times are being converted to a time zone that is different from the time zone specified by the PidLidAppointmentTimeZoneDefinitionStartDisplay property, the client first converts the PidLidAppointmentStartWhole and PidLidAppointmentEndWhole properties from UTC to the time zone specified by the effective TZRule structure, and then uses the updated time zone rule (2) to convert to an updated UTC time before converting the time to another time zone.