Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

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