Your search did not match any results.

Scheduler - Recurring Appointments

A recurring appointment repeats at a specified interval. A circular arrow glyph denotes such an appointment in the view.

Backend API
@model DevExtreme.MVC.Demos.ViewModels.RecurringAppointmentsViewModel @(Html.DevExtreme().Scheduler() .ID("scheduler") .DataSource(Model.Appointments) .TimeZone("America/Los_Angeles") .Views(new[] { SchedulerViewType.Day, SchedulerViewType.Week, SchedulerViewType.Month }) .CurrentView(SchedulerViewType.Month) .CurrentDate(new DateTime(2020, 11, 25)) .StartDayHour(9) .Resources(res => { res.Add() .FieldExpr("RoomId") .ValueExpr("Id") .ColorExpr("Color") .Label("Room") .DataSource(Model.Resources); }) .Height(730) .TextExpr("Text") .StartDateExpr("StartDate") .EndDateExpr("EndDate") .RecurrenceRuleExpr("RecurrenceRule") .RecurrenceExceptionExpr("RecurrenceException") )
using DevExtreme.MVC.Demos.Models.SampleData; using DevExtreme.MVC.Demos.ViewModels; using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; namespace DevExtreme.MVC.Demos.Controllers { public class SchedulerController : Controller { public ActionResult RecurringAppointments() { return View(new RecurringAppointmentsViewModel { Appointments = SampleData.RecurringAppointments, Resources = SampleData.RecurringAppointmentsResources }); } } }
using System; using System.Collections.Generic; using System.Linq; namespace DevExtreme.MVC.Demos.Models { public class RecurringAppointment : Appointment { public int RoomId { get; set; } } }
using System; using System.Collections.Generic; namespace DevExtreme.MVC.Demos.Models.SampleData { public partial class SampleData { public static readonly IEnumerable<RecurringAppointment> RecurringAppointments = new[] { new RecurringAppointment { Text = "Watercolor Landscape", RoomId = 1, StartDate = "2020-11-01T17:30:00.000Z", EndDate = "2020-11-01T19:00:00.000Z", RecurrenceRule = "FREQ=WEEKLY;BYDAY=MO,TH;COUNT=10" }, new RecurringAppointment { Text = "Oil Painting for Beginners", RoomId = 2, StartDate = "2020-11-01T17:30:00.000Z", EndDate = "2020-11-01T19:00:00.000Z", RecurrenceRule = "FREQ=WEEKLY;BYDAY=SU,WE;COUNT=10" }, new RecurringAppointment { Text = "Testing", RoomId = 3, StartDate = "2020-11-01T20:00:00.000Z", EndDate = "2020-11-01T21:00:00.000Z", RecurrenceRule = "FREQ=WEEKLY;BYDAY=SU;WKST=TU;INTERVAL=2;COUNT=2" }, new RecurringAppointment { Text = "Meeting of Instructors", RoomId = 4, StartDate = "2020-11-01T17:00:00.000Z", EndDate = "2020-11-01T17:15:00.000Z", RecurrenceRule = "FREQ=DAILY;BYDAY=TU;UNTIL=20201203" }, new RecurringAppointment { Text = "Recruiting students", RoomId = 5, StartDate = "2020-10-24T18:00:00.000Z", EndDate = "2020-10-24T19:00:00.000Z", RecurrenceRule = "FREQ=YEARLY;BYWEEKNO=50;WKST=SU", RecurrenceException = "20201212T190000Z" }, new RecurringAppointment { Text = "Final exams", RoomId = 3, StartDate = "2020-10-24T20:00:00.000Z", EndDate = "2020-10-24T21:35:00.000Z", RecurrenceRule = "FREQ=YEARLY;BYWEEKNO=51;BYDAY=WE,TH" }, new RecurringAppointment { Text = "Monthly Planning", RoomId = 4, StartDate = "2020-11-24T22:30:00.000Z", EndDate = "2020-11-24T23:45:00.000Z", RecurrenceRule = "FREQ=MONTHLY;BYMONTHDAY=28;COUNT=1" }, new RecurringAppointment { Text = "Open Day", RoomId = 5, StartDate = "2020-11-01T17:30:00.000Z", EndDate = "2020-11-01T21:00:00.000Z", RecurrenceRule = "FREQ=YEARLY;BYYEARDAY=333" } }; } }
using System; using System.Collections.Generic; using System.Linq; namespace DevExtreme.MVC.Demos.Models { public class RecurringAppointmentsResource { public int Id { get; set; } public string Text { get; set; } public string Color { get; set; } } }
using System; using System.Collections.Generic; namespace DevExtreme.MVC.Demos.Models.SampleData { public partial class SampleData { public static readonly IEnumerable<RecurringAppointmentsResource> RecurringAppointmentsResources = new[] { new RecurringAppointmentsResource { Id = 1, Text = "Room 101", Color = "#bbd806" }, new RecurringAppointmentsResource { Id = 2, Text = "Room 102", Color = "#f34c8a" }, new RecurringAppointmentsResource { Id = 3, Text = "Room 103", Color = "#ae7fcc" }, new RecurringAppointmentsResource { Id = 4, Text = "Meeting room", Color = "#ff8817" }, new RecurringAppointmentsResource { Id = 5, Text = "Conference hall", Color = "#03bb92" } }; } }

Do the following to create a recurring appointment:

  1. Locate or create an appointment object in the dataSource.

  2. Specify the recurrenceRule property to configure the appointment frequency. Set this property according to the iCalendar RFC 2445 specification. A single data object with recurrenceRule creates an appointment series.

  3. Optionally, use the recurrenceException property to specify the start date and time of those appointments that you want to exclude from the series.

You can use custom fields that set recurrence. To enable them, specify their names in the Scheduler's recurrenceRuleExpr and recurrenceExceptionExpr properties.

Users can also create recurring appointments. The appointment details form contains a Repeat switch. When it is on, the form displays an additional set of fields to specify recurrence rules. Double-click an appointment and select Edit series to view the appointment details form with the recurrence fields. You can also select Edit appointment to view a single non-recurring appointment from the series.