Overview
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);