[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]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
   Reporting
  [Expand]Data Grid
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Collapse]Scheduler
   [Expand]Getting Started
   [Expand]Appointments
    Resources
    Reminders
   [Expand]Views
   [Expand]Visual Elements
   [Expand]Styles and Templates
   [Expand]Design-Time Features
    Time Zones
   [Expand]Data Binding
    Grouping
    Selecting
    Navigating
    Printing
    End-User Restrictions
   [Expand]Examples
    Migration Guidelines
  [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]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Expand]Scheduler (legacy)
 [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]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

Reminders

Expanded Overview

A reminder sends alerts at a specified time. An appointment can have one or more reminders. An icon displayed within an appointment indicates a reminder. The WPF Scheduler suite provides a ReminderItem class for reminders which are set for AppointmentType.Normal type appointments and the RecurringReminderItem class for reminders which are set for recurrence series appointments.

Expanded Creating Reminders

You can create a reminder in the following ways:

  • Use the AppointmentItem.CreateNewReminder method to create a reminder and add it to the particular appointment's AppointmentItem.Reminders collection.

    Show Me

    A complete sample project is available in the DevExpress Code Examples database at http://www.devexpress.com/example=T555815.

  • Select an appointment and click Reminder in the Appointment tab's Options group to specify the time before the appointment starts when you want to get a reminder. The selected value is assigned to the ReminderItem.TimeBeforeStart property.

  • Invoke the Appointment Window and use the Reminder editor to select the time before the appointment starts. The selected value is assigned to the ReminderItem.TimeBeforeStart property.

  • Set the SchedulerControl.DefaultReminderTime to a TimeSpan value that specifies the time before the appointment starts. Subsequently, all new appointments have a reminder with the specified ReminderItem.TimeBeforeStart value. You can handle the SchedulerControl.InitNewAppointment event to change a particular appointment's default reminder.

Expanded Using Reminders

To get a collection of reminders for an appointment, use the AppointmentItem.Reminders property. The AppointmentItem.Reminder property returns the first reminder in a collection (that is, with the index of 0).

The built-in reminder controller checks the alert times for all reminders at a regular interval the SchedulerControl.RemindersCheckInterval property specifies. When it is time for the reminder (determined by the ReminderItem.AlertTime property), the controller adds it to the SchedulerControl.TriggeredReminders collection, fires the SchedulerControl.RemindersWindowShowing event and invokes the notification dialog, as illustrated below:

Tip

To perform a custom action on a reminder alert, handle the SchedulerControl.TriggeredReminders collection's the CollectionChanged event.

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

Alternatively, they can postpone the alert for a specified time by selecting the time interval in the combo box and clicking the "Snooze" button.

They can also close the Reminders window without making a decision. In this situation, clicking the Reminders Window in the Window group displays the Reminders window again.

Tip

You can display a custom window instead of the built-in Reminders window. Use the SchedulerControl.OptionsWindows property in XAML to specify a custom window, or handle the SchedulerControl.RemindersWindowShowing event and set the WindowShowingEventArgs<T>.Window property. It does not display an alert if you do not specify the window and set the CancelRoutedEventArgs.Cancel property to true.

Expanded Handling Outdated Appointments

The following rules are in effect:

  • If a normal (not recurring) appointment becomes outdated (when it is moved to an earlier time, or if the application starts later than the appointment), the controller checks the appointment reminder after the interval the SchedulerControl.RemindersCheckInterval setting specifies and fires an alert. You can call the SchedulerControl.CheckTriggeredReminders method to fire all the outdated appointment reminders immediately.
  • If a reminder is set for a recurring 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

A recurrence series shares reminders, assigned to the Appointment.RecurrencePattern. The reminders are of the RecurringReminderItem type, so the alert time is calculated for the first occurrence that is not outdated.

The following behavior is implemented for a changed occurrence:

If a regular occurrence is in the future:

  • Once this occurrence is moved to the past, its reminder is deleted.
  • When this occurrence is restored to a time in the future, its reminder is restored and persists until this occurrence becomes outdated.
  • The reminder is not restored when this occurrence is restored to a time in the past.

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 to a time 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's basic functionality:

Member Name

Description

SchedulerControl.DefaultReminderTime Gets or sets the value used to specify the reminder's ReminderItem.TimeBeforeStart property for a newly created appointment.
SchedulerControl.RemindersCheckInterval Gets or sets the period of time between checks for a reminder's alert time.
SchedulerControl.AllowReminders Gets or sets whether appointment reminders are allowed. This is a dependency property.
SchedulerControl.RemindersWindowShowing Enables you to specify the window displayed when a reminder fires, or hide it.
ReminderItem A reminder for a non-recurring appointment.
RecurringReminderItem A reminder for a recurring appointment.
TriggeredReminder An object that identifies a reminder which is due.
AppointmentItem.CreateNewReminder Creates a reminder for the specified appointment.
AppointmentItem.Reminders Gets a collection of reminders associated with the current appointment.
AppointmentItem.Reminder Gets a reminder associated with the current appointment (the collection's first reminder, if there are several reminders).
AppointmentMappings.Reminder Gets or sets the mapping that binds the appointment's AppointmentItem.Reminder property to the data source field.
OptionsWindows.RemindersWindowType Gets or sets the object type inherited from the System.Windows.Window class which is instantiated and shown instead of the default Reminders window.

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