[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
   Reporting
  [Expand]Data Grid
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Scheduler
  [Expand]Spreadsheet
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Printing-Exporting
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Gantt Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Collapse]Scheduler (legacy)
   [Expand]Overview
   [Expand]Getting Started
   [Collapse]Fundamentals
    [Expand]Scheduler Elements
    [Collapse]Appointments
      What Is an Appointment
      Appointment Labels and Statuses
      Recurring Appointments and Exceptions
      Reminders for Appointments
     Resources
    [Expand]Views
     Pop-up Menus
    [Expand]Data Binding
    [Expand]Mappings
    [Expand]Supported Formats
    [Expand]Styles and Templates
     Services
     Time Zones
    [Expand]Printing
     Product Class Structure
     Scheduling Basics
   [Expand]Visual Elements
   [Expand]Examples
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Reminders for Appointments

Note

You are viewing documentation for the legacy WPF Scheduler control. If you're starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

This document introduces the Reminder, and describes how reminders can be created and handled. It contains a code sample, to help you make the most of reminders in DXScheduler.

Expanded Overview

A reminder sends alerts at specified time periods before an appointment's start time. Any appointment can have one or more reminders. If an appointment has a reminder, the image is displayed. The DXScheduler suite for WPF 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.

Expanded Creating Reminders

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

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.

Expanded 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:

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

Another option is to shift the alert time by selecting the time interval in the combo box and clicking the "Snooze" button. Then, the notification will be postponed for a specified time.

Expanded 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 SchedulerStorage.RemindersCheckInterval setting). You can use the SchedulerStorage.TriggerAlerts method to fire all reminders for outdated appointments at once, when an application starts.
  • If a reminder is set for a recurrent appointment, the reminder never fires for an outdated occurrence. This is sensible because recurrence chains can be lengthy and even infinite.

Expanded 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.

Expanded Reminder Member Table

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

Member Name Description
Appointment Information
Reminder.Appointment property Gets the appointment for which the reminder is set.
Reminder.Subject property Gets the subject text of the appointment which the reminder is applied to.
Alert Options
ReminderBase.AlertTime property Gets or sets the reminder's alert time.
ReminderBase.TimeBeforeStart property Gets or sets the time interval before the appointment's start time.
Alert Handling
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.
SchedulerStorage.RemindersCheckInterval property Gets or sets the time interval between checks of the reminder alert time (in milliseconds).
SchedulerStorage.TriggerAlerts method Invokes reminder alerts for the current time.
Reminders Form
SchedulerControl.RemindersFormShowing event Occurs before the Reminders form is invoked to display alert notifications for the currently triggered reminders.
SchedulerOptionsBehaviorBase.RemindersFormDefaultAction property. Gets or sets the type of default action which is applied when the Reminders Form is closed.
SchedulerControl.RemindersFormDefaultAction event Occurs when an end-user does not click the Dismiss or Snooze button on the Reminders form, but closes it. The OptionsBehavior.RemindersFormDefaultAction property should be set to DevExpress.XtraScheduler.RemindersFormDefaultAction.Custom.

Expanded See Also

Is this topic helpful?​​​​​​​