Skip to main content

Reminders for Appointments

  • 4 minutes to read

This document introduces the Reminder for Appointments concept, and describes how reminders can be created and handled.

Overview

Any appointment can have one or more reminders. They are responsible for sending alerts at specified time periods before an appointment’s start time. If an appointment has a reminder, the AppointmentImageType.Reminder image is displayed. The XtraScheduler Suite provides an abstract ReminderBase class, which implements the basic reminder functionality and two derived classes - Reminder for appointments of AppointmentType.Normal type and RecurringReminder for appointments of a recurrence series.

Creating Reminders

A reminder can be created for a particular appointment either via code or with the help of appointment’s editing form, demonstrated below:

EditingAppointments_01.png

There are two methods for creating a reminder via code. The simplest one is the Appointment.HasReminder property - if an appointment has no reminders, and the HasReminder is set to true, then a new reminder with default parameters is created and associated with the appointment. If several reminders for an appointment are required, you should use another method. First, a new reminder is created via the Appointment.CreateNewReminder method. Then, after its characteristics are set, it should be added to the reminder’s collection Appointment.Reminders of the particular appointment.

Using Reminders

To access the appointment’s reminders, use the Appointment.Reminder property, which returns the first reminder in a collection (and the only one if it has been created via the Appointment.HasReminder property), or the Appointment.Reminders property, which gets the entire collection of reminders for an appointment.

When the time has come for the reminder to alert, it invokes the notification dialog, as illustrated below:

ReminderNotification

The end-user can switch the reminders off by clicking the “Dismiss“ or “Dismiss All“ buttons.

You can also select a time interval in the combo box and click the “Snooze“ button to postpone the notification for a set time.

Handle Reminder Form Button Clicks

The RemindersFormAction event allows you to perform custom actions on Reminder Form button clicks.

Handling Outdated Appointments

  • If a reminder is set for an appointment of AppointmentType.Normal type, this outdated appointment generates an alert as usual (taking into account the SchedulerDataStorage.RemindersCheckInterval setting). You can use the SchedulerDataStorage.TriggerAlerts method to fire all reminders for outdated appointments at once, when application starts.
  • If a reminder is set for a recurring appointment, the reminder never fires for an outdated occurrence. It appears reasonable because recurrence chains can be lengthy and even infinite.

Handling Reminders for Changed Occurrences

If an occurrence is in the future:

  • Once this occurrence is moved to the past, its reminder is deleted.
  • When this occurrence is restored and becomes located in the future, its reminder is restored and will persist until this occurrence becomes in the past again.
  • When this occurrence is restored and becomes in the past, the reminders are not restored.

If a recurring appointment is in the past (such occurrences do not have reminders):

  • Once the occurrence is moved to the future, its reminder is re-created from the pattern.
  • When the occurrence is restored and becomes in the past, the reminder is deleted.

Reminder Member Table

The following table lists the main properties, methods and events which implement Reminder basic functionality.

Member Name Description
Availability
AppointmentStorageBase.SupportsReminders property Informs you whether the mapping for reminder info exists so the storage can operate with reminders (relevant for the bound mode).
SchedulerDataStorage.EnableReminders property Enables you to specify whether reminder operations are allowed.
SchedulerControl.RemindersEnabled property Indicates whether reminders are enabled (supported AND allowed).
Appointment Information
Reminder.Appointment property Gets the appointment which the reminder is applied to.
Reminder.Subject property Gets the subject text of the appointment the reminder is applied to.
Alert Options
ReminderBase.AlertTime property Gets the reminder’s alert time.
ReminderBase.TimeBeforeStart property Gets or sets the time interval before the appointment’s start time.
SchedulerStorageBase.ReminderDstBehaviorType property Gets or sets the reminder’s behavior if the reminder alert falls within the interval that actually doesn’t exist because of the Daylight Saving Time shift.
Alert Handling
SchedulerDataStorage.ReminderAlert event. Occurs when a reminder alert is invoked.
ReminderBase.Dismiss method Switches the reminder off for the associated appointment.
ReminderBase.Snooze method Notifies the scheduler to defer the triggering of a reminder by the specified interval.
SchedulerDataStorage.RemindersCheckInterval property Gets or sets the time interval a reminder’s alert time should be checked (in milliseconds).
SchedulerDataStorage.TriggerAlerts method Trigger alerts immediately.
Export
ReminderCollectionXmlPersistenceHelper.CreateSaveInstance method. Creates and initializes an instance of the helper for serializing the reminder collection using XML format.
Import
RecurrenceInfoXmlPersistenceHelper.ObjectFromXml method. Restores recurrence information from the specified XML string.
Reminders Form
SchedulerControl.RemindersFormShowing event Occurs before the Reminders form is displayed.
SchedulerControl.RemindersFormAction event Occurs when an end-user closes the Reminders Form or clicks the Dismiss, Dismiss All, or Snooze button.
See Also