Reminders for Appointments
- 4 min to read
This document introduces the Reminder for Appointments concept and describes how to create and handle reminders. It also contains a code sample that shows how to utilize reminders in ASPxScheduler.
An appointment can have one or more reminders. They are responsible for sending alerts at specified time periods before an appointment's start time. An appointment displays the image if it has a reminder. The ASPxScheduler Suite provides an abstract ReminderBase class, which implements the basic reminder functionality and two derived classes - Reminder for AppointmentType.Normal type appointments and RecurringReminder for recurring appointments.
You can create a reminder for a particular appointment programmatically or using an appointment's editing form.
There are two ways to create a reminder via code.
- Using the Appointment.HasReminder property if an appointment has no reminders. Set the HasReminder property to true to create a new reminder with default parameters and associate it with the appointment.
- Creating a new reminder via the Appointment.CreateNewReminder method. After its characteristics are set, add it to the particular appointment's Appointment.Reminders collection. Use this method when an appointment requires several reminders.
To access the appointment's reminders, use the Appointment.Reminder property. This returns the first reminder in a collection or the Appointment.Reminders property, which gets all an appointment's reminders.
A reminder invokes the following notification dialog at the specified alert time:
An end-user can implement the following actions using the dialog:
- Review the appointment's detailed information.
- Open the appointment using the "Open Item" button.
- Turn the reminders off by clicking the "Dismiss" or "Dismiss All" buttons.
- Postpone the alert time for a specified period by selecting the time interval in the combo box and clicking the "Snooze" button.
Handling Outdated Appointments
- If a reminder is set for an AppointmentType.Normal type appointment, this outdated appointment generates an alert as usual (taking into account the SchedulerStorageBase.RemindersCheckInterval setting). You can use the SchedulerStorageBase.TriggerAlerts method to fire all reminders for outdated appointments at once when the application starts.
- If a reminder is set for a recurrent appointment, the reminder never fires for an outdated occurrence because recurrence chains can be lengthy and even infinite.
Handling Reminders for Changed Occurrences
If an occurrence is in the future:
- Its reminders are deleted if it is moved to the past;
- Its reminders are reinstated when it is restored to a point in the future and persists until it is in the past again;
- Its reminders are not reinstated when it is restored to a point in the past.
If a recurring appointment is in the past (such occurrences do not have reminders):
- Its reminders are re-created from the pattern when it is moved to the future;
- Its reminders are deleted when it is restored to a point in the past.
Reminder Member Table
The following table lists the main properties, methods, and events which implement a Reminder's basic functionality:
|AppointmentStorageBase.SupportsReminders property||Informs you whether reminder info mapping exists so the storage can operate with reminders (relevant for the bound mode).|
|SchedulerStorageBase.EnableReminders property||Allows you to specify whether reminder operations are allowed.|
|SchedulerStorageBase.RemindersEnabled property||Indicates whether reminders are enabled (supported AND allowed).|
|Reminder.Appointment property||Gets the appointment to which the reminder is applied.|
|Reminder.Subject property||Gets the subject text of the appointment to which the reminder is applied.|
|ReminderBase.AlertTime property||Gets the reminder's alert time.|
|ReminderBase.TimeBeforeStart property||Gets or sets the time interval before the appointment's start time.|
|ASPxSchedulerDataWebControlBase.ReminderAlert event.||Occurs when a reminder is triggered.|
|ReminderBase.Dismiss method||Switches the reminder off for the associated appointment.|
|ReminderBase.Snooze method||Notifies the scheduler to stop the specified interval from triggering a reminder.|
|SchedulerStorageBase.RemindersCheckInterval property||Gets or sets the time interval a reminder's alert time should be checked (in milliseconds).|
|SchedulerStorageBase.TriggerAlerts method||Triggers alerts immediately.|
|ASPxScheduler.RemindersFormShowing event||Occurs before the Reminders form is displayed.|
|ASPxScheduler.RemindersFormDefaultAction event.||Occurs when an end-user closes the Reminders Form without clicking the Dismiss or Snooze button.|
|ASPxSchedulerOptionsForms.RemindersFormTemplateUrl property.||Gets or sets a template location for the form used to edit the current appointment's associated alert.|