Reading a Skipped Alarm Instances Property

This topic provides an example of how to get information about a skipped Calendar alarm instance.

A Calendar client can create a Calendar entry with an associated alarm. Calendar registers the associated alarm with the Alarm Server. If an alarm is skipped a subscriber to Calendar can be notified of this and then query information about the skipped alarm.

The Publish and Subscribe property KSkippedAlarmInstancesPubSubKey supplies additional information that is required to search the Calendar store for instances with skipped alarms.

The Alarm Server publishes an integer value for KSkippedAlarmInstancesPubSubKey when an environment change causes a Calendar alarm to be skipped. The value of the KSkippedInstancesPubSubKey property is a TASShdAlarmedInstanceParams structure, defined in ASShdAlarm.h.

TASShdAlarmTimeType identifies whether the skipped alarm is a floating time alarm or a fixed time alarm. Coordinated Universal Time (UTC) offset changes cannot cause fixed alarms to be skipped.


  1. The Calendar client function CSKippedAlarmsObserver gets the data stored in the KSkippedAlarmInstancesPubSubKey property to retrieve a list of instances whose alarms are in the specified time range from Calendar.

  2. A list of skipped alarms is then displayed by RetrieveListOfInstancesL().
    #include <ASShdAlarm.h>  // For TASShdAlarmedInstanceParams etc.
    #include <calinstance.h> // For CCalInstance.
    #include <…>
    …
    void CSkippedAlarmsObserver::HandleSkippedAlarmsL()
        {
        TPckgBuf<TASShdAlarmedInstanceParams> instanceParamsBuf; 
        RProperty::Get(KAlarmServerPubSubCategory, 
            KSkippedAlarmInstancesPubSubKey, instanceParamsBuf);
        
        // Use the information provided in TASShdAlarmedInstanceParams
        // data structure to retrieve a list of instances whose alarms fall
        // in the time range from the calendar.
        RPointerArray<CCalInstance> instanceList;
        RetrieveListOfInstancesL(instanceList, instanceParamsBuf());
        …
        }