[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
   [Collapse]Appointments
     Appointment
     Recurrence
     Labels
     Statuses
    Resources
    Reminders
   [Expand]Views
   [Expand]Visual Elements
   [Expand]Styles and Templates
   [Expand]Design-Time Features
    Time Zones
   [Expand]Data Binding
    Appearance Customization
    Grouping
    Selecting
    Clipboard Operations
    Printing Templates
    Drag and Drop Customization
    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]Gantt 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]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)

Recurrence

Expanded Overview

Appointments can be either simple occurring only once in the specified time interval), or recurring. To determine whether an appointment is recurring, use the AppointmentItem.IsRecurring property.

Different types of appointments can be recurring. Use the AppointmentItem.Type property to determine an appointment's type. A recurring appointment can either be a base (a Pattern) or a recurring instance (occurrence). Recurring instances can either be a regular Occurrence, or an exception (a ChangedOccurrence or a DeletedOccurrence). A regular recurring appointment is visually indicated with the icon; an exception is visually indicated with the icon. The following sections describe the differences between these recurring appointments.

Expanded Base Recurring Appointment and Recurrence Pattern

Every recurring appointment's series is based on the pattern appointment, available using the AppointmentItem.RecurrencePattern property of all other appointments in the series. The Pattern appointment contains information about a recurrence: it sets the recurrence series' start date and time and specifies the rule according to which a series is repeated. This recurrence rule is accessed via the pattern's AppointmentItem.RecurrenceInfo property.

The Pattern appointment is stored in the SchedulerControl.AppointmentItems collection. All other Occurrence appointments (except for ChangedOccurrence and DeletedOccurrence) are not stored in any collection. They are automatically generated at runtime according to the pattern appointment's RecurrenceInfo.

Note

Recurring appointments' series can be either finite or infinite. Occurrence appointments are not stored in any collection to avoid a stack overflow for infinitive recurring series.

End-users can edit an appointment's recurrence pattern at runtime using the Recurrence Window.

The following recurrence types are supported:

Type Example
RecurrenceType.Minutely How to: Create Minutely Recurrence
RecurrenceType.Hourly How to: Create Hourly Recurrence
RecurrenceType.Daily How to: Create Daily Recurrence
RecurrenceType.Weekly How to: Create Weekly Recurrence
RecurrenceType.Monthly How to: Create Monthly Recurrence
RecurrenceType.Yearly How to: Create Yearly Recurrence

Expanded Recurrence Exceptions

Only the Pattern appointment is stored in the underlying data source. Regular appointments in the recurring series (Occurrences) are generated at runtime; you cannot find them in the SchedulerControl.AppointmentItems collection and they are not saved to the data source.

However, a recurring series may contain several exceptions. Exceptions are the Occurrence appointments which have either been changed or deleted and no longer meet the common recurrence rule the pattern appointment specifies.

Note

All occurrences within a recurring series are associated with the same resource. A changed occurrence can differ from its pattern by a subject, description, label, status, start time, and end time.

A collection of exceptions for a particular recurrence pattern is accessible using the pattern's AppointmentItem.GetExceptions method. This collection contains both AppointmentType.ChangedOccurrence and AppointmentType.DeletedOccurrence appointment types. Note that exceptions replace regular occurrences: the Occurrence appointment with the same AppointmentItem.RecurrenceIndex is not generated for each appointment in the exception's collection.

Note

Call the AppointmentItem.RestoreOccurrence method to restore the original occurrence from an exception.

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