# scheduler-recurring-events

> Scheduler displays recurring appointments configured with RFC5545 recurrence rules.

**Framework:** aspnet-core  **Component:** Scheduler  **Variant:** recurring-events

## Get this item

**If you are an agent, fetch the JSON.** Source is inlined, so one request is enough and no tooling is required:

```
GET https://ai.syncfusion.com/r/aspnet-core/scheduler-recurring-events.json
```

**Install Package(s)**

```bash
dotnet add package Syncfusion.AspNetCore.Schedule
```

**Notes**

- Syncfusion release: 2026 Volume 2 (v34.1.29)
- The Syncfusion package is licensed. The composition in this file is source you own and edit. See https://ai.syncfusion.com/licensing.md

## Source files

### src/components/scheduler-recurring-events/scheduler.cshtml

```cshtml
@page

@using EJ2CoreSampleBrowser.Pages.Grid

@{
    var appointments = new ScheduleData().GetRecurrenceData();
}

    <div class="col-lg-9 control-section">
        <div class="schedule-wrapper">
            <ejs-schedule id="schedule" height="500px" selectedDate="new DateTime(DateTime.Today.Year, 2, 20)" eventRendered="onEventRendered">
                <e-schedule-eventsettings dataSource="@appointments"></e-schedule-eventsettings>
                <e-schedule-views>
                    <e-schedule-view option="Day"></e-schedule-view>
                    <e-schedule-view option="Week"></e-schedule-view>
                    <e-schedule-view option="Month"></e-schedule-view>
                </e-schedule-views>
            </ejs-schedule>
        </div>
    </div>

    <script src="~/scripts/schedule/applyCategoryColor.js"></script>
    <script type="text/javascript">
        function onEventRendered(args) {
            var scheduleObj = document.getElementById('schedule').ej2_instances[0];
            applyCategoryColor(args, scheduleObj.currentView);
        }
    </script>
```

### src/components/scheduler-recurring-events/scheduler.cshtml.cs

```cs
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace EJ2CoreSampleBrowser.Pages.Grid;

public class ScheduleData
{
    private static DateTime Today = DateTime.Now;
    private int CurrentYear = Today.Year;
    public List<RecurrenceData> GetRecurrenceData()
    {
        List<RecurrenceData> recurrenceData = new List<RecurrenceData>();
        recurrenceData.Add(new RecurrenceData
        {
            Id = 1,
            Subject = "Project demo meeting with Andrew",
            Location = "Office",
            StartTime = new DateTime(CurrentYear, 2, 14, 12, 0, 0),
            EndTime = new DateTime(CurrentYear, 2, 14, 13, 0, 0),
            RecurrenceRule = "FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;COUNT=10",
            CategoryColor = "#1aaa55"
        });
        recurrenceData.Add(new RecurrenceData
        {
            Id = 2,
            Subject = "Scrum Meeting",
            Location = "Office",
            StartTime = new DateTime(CurrentYear, 2, 12, 9, 30, 0),
            EndTime = new DateTime(CurrentYear, 2, 12, 10, 30, 0),
            RecurrenceRule = "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;INTERVAL=1",
            CategoryColor = "#357cd2"
        });
        recurrenceData.Add(new RecurrenceData
        {
            Id = 3,
            Subject = "Meeting with Core team",
            Location = "Office",
            StartTime = new DateTime(CurrentYear, 2, 16, 12, 0, 0),
            EndTime = new DateTime(CurrentYear, 2, 16, 14, 0, 0),
            RecurrenceRule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR",
            CategoryColor = "#7fa900"
        });
        
        return recurrenceData;
    }
    public class RecurrenceData
    {
        public int Id { get; set; }
        public string Subject { get; set; }
        public DateTime StartTime { get; set; }
        public DateTime EndTime { get; set; }
        public bool IsAllDay { get; set; }
        public string Location { get; set; }
        public string RecurrenceRule { get; set; }
        public string CategoryColor { get; set; }
    }
}
```
