This section explains the effect on alarms due to the environment and DST changes.
An environment change typically involves change in the system time/date, workdays or UTC offset, and due to this, alarm's expiry time can be put in the past.
When an environment change occurs, the Alarm Server can respond in any of the following ways:
The Alarm Server queues the alarms that have been skipped. These alarms then expire immediately and must be acknowledged by the device user.
The Alarm Server uses KSkippedAlarmInstancesPubSubKey P&S key to notify the clients about the skipped calendar alarms. This key can be used only by the device creators.
Alarm Server observes changes in the UTC offset as a locale change since the UTC offset is set according to the localized position. It observes this offset from the system, and on change of this offset, only the alarms in the alarm queue that are based on the floating time undergoes changes.
NOTE: All alarms in the alarm queue are re-evaluated only if system time/date and workday changes. This is applicable for all alarms irrespective of their time formats. The workday changes are also a locale change for the system.
Daylight Saving Time (DST) or Summer Time, is a way of utilizing more daylight by advancing the local time by one hour during the summer.
The clocks are adjusted forward by one hour at the beginning of spring and are adjusted backward in autumn. The time adjusted backward by one hour in autumn is usually referred as Standard Time (or Winter Time). In a typical case where a one-hour shift occurs at 02:00 local time, the clock is adjusted forward from 02:00 standard time to 03:00 DST in spring and that day has 23 hours. Whereas in autumn, the clock is adjusted backward from 02:00 DST to 01:00 standard time, repeating that hour, and that day has 25 hours.
Alarm Server observes this DST event from the Time Zone Server using KDSTChangePropertyKey P&S key. This key can be used only by the device creators. On receiving notification of this event through the key, all alarms (based on the floating time format) in the alarm queue are re-evaluated for their expiry time.