How to: Create Monthly Recurrence

  • 3 minutes to read
<dxsch:SchedulerControl.AppointmentItems>
    <!--An appointment occurs on the 11th day of each month. Four occurrences.-->
    <dxsch:AppointmentItem 
        Type="Pattern"
        Start="1/1/2020 13:00:00"
        End="1/1/2020 14:00:00"
        Subject="On 11th day of each month. Four occurrences."
        RecurrenceInfo="{dxsch:RecurrenceMonthly Start='1/1/2020 13:00:00', ByMonthDay=11, OccurrenceCount=4}" />
    <!--An appointment occurs on the last Wednesday of the month, for 2 months. Infinite (no end date).-->
    <dxsch:AppointmentItem 
        Type="Pattern"
        Start="1/1/2020 13:00:00"
        End="1/1/2020 14:00:00"
        Subject="Last Wednesday of the month, for 2 months. Infinite (no end date)."
        RecurrenceInfo="{dxsch:RecurrenceMonthly Start='1/1/2020 13:00:00', ByDay=Wednesday, WeekOfMonth=Last, Interval=2}" />
    <!--An appointment occurs on the first Monday of the month for 3 months. The series duration is one year.-->
    <dxsch:AppointmentItem 
        Type="Pattern"
        Start="1/1/2020 13:00:00"
        End="1/1/2020 14:00:00"
        Subject="First Monday of the month for 3 months. The series duration is one year."
        RecurrenceInfo="{dxsch:RecurrenceMonthly Start='1/1/2020 13:00:00', ByDay=Monday, WeekOfMonth=First, Interval=3, End='1/1/2021 13:00:00'}" />
</dxsch:SchedulerControl.AppointmentItems>
public AppointmentItem CreateAppointmentPattern(string subj, int categoryId) {
    AppointmentItem apt = new AppointmentItem(AppointmentType.Pattern);
    apt.Start = DateTime.Today.AddHours(9);
    apt.End = apt.Start.AddMinutes(5);
    apt.Subject = subj;
    apt.LabelId = categoryId;
    return apt;
}
    // An appointment occurs on the 11th day of each month. Four occurrences.
    AppointmentItem apt1 = CreateAppointmentPattern("On 11th day of each month. Four occurrences.", 4);
    apt1.SetRecurrenceInfo(RecurrenceBuilder.Monthly(apt1.Start, 4).ByDay(11).Build());
    scheduler.AppointmentItems.Add(apt1);

    // An appointment occurs on the last Wednesday of the month, for 2 months. Infinite (no end date).
    AppointmentItem apt2 = CreateAppointmentPattern("Last Wednesday of the month, for 2 months. Infinite (no end date).", 4);
    apt2.SetRecurrenceInfo(RecurrenceBuilder.Monthly(apt2.Start).ByDay(WeekDays.Wednesday, WeekOfMonth.Last)
        .Interval(2).Build());
    scheduler.AppointmentItems.Add(apt2);

    // An appointment occurs on the first Monday of the month for 3 months. The series duration is one year.
    AppointmentItem apt3 = CreateAppointmentPattern("First Monday of the month for 3 months. The series duration is one year.", 4);
    apt3.SetRecurrenceInfo(RecurrenceBuilder.Monthly(apt3.Start, apt3.Start.AddYears(1))
        .ByDay(WeekDays.Monday, WeekOfMonth.First).Interval(3).Build());
    scheduler.AppointmentItems.Add(apt3);