New to Telerik UI for WinUI? Download free 30-day trial


RadScheduler provides the functionality to configure repeating appointments. The user has the ability to apply recurring scheduling patterns such as daily, weekly, monthly or set a range of recurrence from date to date. The flexible rule mechanism covers all possible recurrence scenarios. Furthermore, you also have the option to handle the exceptions from this rule.

RadScheduler includes support for recurring events on daily, weekly, monthly and yearly basis. Exceptions to the recurrence rules are also permitted. To support this recurrence behavior, the IAppointment interface includes the RecurrenceRule property. When an appointment is promoted into a recurring event its RecurrenceRule is set with correct RecurrencePattern.

If the user modifies an individual appointment occurrence, an exception is created. This exception is added to the RecurrenceRule of the master appointment along with its specific date.

Consider the following example:

  • Create a sample appointment that starts at 11/05/2021 10:00 AM and lasts half an hour:

Example 1: Creating an Appointment

var startDate = new DateTime(2021, 05, 11, 10, 0, 0); 
var appointment = new Appointment() { 
    Start = startDate, 
    End = startDate.AddMinutes(30), 
    Subject = "Daily appointment" 
  • Create a daily recurrence pattern, that specifies a limit of 4 occurrences for the appointment:

Example 2: Creating a RecurrencePattern

var pattern = new RecurrencePattern() { 
    Frequency = RecurrenceFrequency.Daily, 
    DaysOfWeekMask = RecurrenceDays.EveryDay, 
    MaxOccurrences = 4 
  • Set the recurrence rule to appointment:

Example 3: Setting the RecurrenceRule

appointment.RecurrenceRule = new RecurrenceRule(pattern); 
  • Add exception date to the recurrence rule:

Example 4: Adding an exception

appointment.RecurrenceRule.AddException(new DateTime(2021, 05, 14, 10, 0, 0)); 
  • Create an exception appointment:

Example 5: Creating an exception appointment

var exceptionAppointment = (Appointment)appointment.Copy(); 
exceptionAppointment.Start = new DateTime(2021, 05, 18, 11, 0, 0); 
exceptionAppointment.End = exceptionAppointment.Start.AddMinutes(45); 
appointment.RecurrenceRule.AddException(new DateTime(2021, 05, 15, 10, 0, 0), exceptionAppointment); 
Finally when you add the created appointment to the collection bound to the AppointmentsSource property of the RadScheduler, you'll get four generated appointments.

Figure 1: Recurrent Appointment

WinUI Recurrent Appointment Overview

In this article
Not finding the help you need?