New to Telerik UI for .NET MAUIStart a free 30-day trial

RadScheduler is a comprehensive scheduling component that provides advanced calendar functionality with multiple view options, interactive appointment management, and extensive customization capabilities. It supports various views (Day, Week, Month), appointment CRUD operations through built-in dialogs, gesture navigation, recurrence patterns, and more.

Definition

Namespace:Telerik.Maui.Controls

Assembly:Telerik.Maui.Controls.dll

Syntax:

C#
public class RadScheduler : RadBorder, IRadBorder, IRadContentView, IContentView, IView, IElement, ITransform, IPadding, ICrossPlatformLayout, INotifyPropertyChanged

Inheritance: objectRadContentViewRadBorderRadScheduler

Implements: IContentViewICrossPlatformLayoutIElementINotifyPropertyChangedIPaddingIRadBorderIRadContentViewITransformIView...

Inherited Members RadBorder.BorderColorPropertyRadBorder.CornerRadiusPropertyRadBorder.BorderThicknessPropertyRadBorder.BorderBrushPropertyRadBorder.ChangeVisualState()RadBorder.BorderColorRadBorder.CornerRadiusRadBorder.BorderThicknessRadBorder.BorderBrushRadContentView.ActualStyleClassPropertyRadContentView.OnChildAdded(Element)RadContentView.OnChildRemoved(Element, int)RadContentView.OnHandlerChanged()...

Constructors

Initializes a new instance of the RadScheduler class.

C#
public RadScheduler()

Fields

Identifies the ActiveViewDefinitionHeaderItemStyle property.

C#
public static readonly BindableProperty ActiveViewDefinitionHeaderItemStyleProperty

Identifies the ActiveViewDefinitionIndex property.

C#
public static readonly BindableProperty ActiveViewDefinitionIndexProperty

Identifies the ActiveViewDefinition property.

C#
public static readonly BindableProperty ActiveViewDefinitionProperty
C#
public static readonly BindableProperty ActualActiveViewDefinitionHeaderItemStyleProperty

Identifies the ActualDecreaseVisibleRangeButtonStyle property.

C#
public static readonly BindableProperty ActualDecreaseVisibleRangeButtonStyleProperty
C#
public static readonly BindableProperty ActualDeleteAppointmentChoiceDialogStyleProperty
C#
public static readonly BindableProperty ActualDeleteRecurrenceChoiceDialogStyleProperty

Identifies the ActualEditAppointmentDialogStyle property.

C#
public static readonly BindableProperty ActualEditAppointmentDialogStyleProperty

Identifies the ActualEditRecurrenceChoiceDialogStyle property.

C#
public static readonly BindableProperty ActualEditRecurrenceChoiceDialogStyleProperty

Identifies the ActualEditRecurrenceDialogStyle property.

C#
public static readonly BindableProperty ActualEditRecurrenceDialogStyleProperty

Identifies the ActualHeaderBorderStyle property.

C#
public static readonly BindableProperty ActualHeaderBorderStyleProperty

Identifies the ActualHeaderIndicatorLabelStyle property.

C#
public static readonly BindableProperty ActualHeaderIndicatorLabelStyleProperty

Identifies the ActualHeaderLabelStyle property.

C#
public static readonly BindableProperty ActualHeaderLabelStyleProperty

Identifies the ActualIncreaseVisibleRangeButtonStyle property.

C#
public static readonly BindableProperty ActualIncreaseVisibleRangeButtonStyleProperty

Identifies the ActualPreviewAppointmentDialogStyle property.

C#
public static readonly BindableProperty ActualPreviewAppointmentDialogStyleProperty

Identifies the ActualTodayButtonStyle property.

C#
public static readonly BindableProperty ActualTodayButtonStyleProperty

Identifies the ActualViewDefinitionHeaderItemStyle property.

C#
public static readonly BindableProperty ActualViewDefinitionHeaderItemStyleProperty

Identifies the AddAppointmentButtonStyle property.

C#
public static readonly BindableProperty AddAppointmentButtonStyleProperty

Identifies the AddAppointmentCommand bindable property.

C#
public static readonly BindableProperty AddAppointmentCommandProperty

Identifies the AgendaItemDoubleTapCommand bindable property.

C#
public static readonly BindableProperty AgendaItemDoubleTapCommandProperty

Identifies the AgendaItemTapCommand bindable property.

C#
public static readonly BindableProperty AgendaItemTapCommandProperty

Identifies the AppointmentDoubleTapCommand bindable property.

C#
public static readonly BindableProperty AppointmentDoubleTapCommandProperty

Identifies the AppointmentsSource property.

C#
public static readonly BindableProperty AppointmentsSourceProperty

Identifies the AppointmentStyleSelector property.

C#
public static readonly BindableProperty AppointmentStyleSelectorProperty

Identifies the AppointmentTapCommand bindable property.

C#
public static readonly BindableProperty AppointmentTapCommandProperty

Identifies the AppointmentTemplate property.

C#
public static readonly BindableProperty AppointmentTemplateProperty

ControlTemplateProperty

BindableProperty

Identifies the ControlTemplate property.

C#
public static readonly BindableProperty ControlTemplateProperty

CultureProperty

BindableProperty

Identifies the Culture property.

C#
public static readonly BindableProperty CultureProperty

CurrentDateProperty

BindableProperty

Identifies the CurrentDate property.

C#
public static readonly BindableProperty CurrentDateProperty

Identifies the DecreaseVisibleRangeButtonStyle property.

C#
public static readonly BindableProperty DecreaseVisibleRangeButtonStyleProperty

Identifies the DecreaseVisibleRangeCommand bindable property.

C#
public static readonly BindableProperty DecreaseVisibleRangeCommandProperty

Identifies the DeleteAppointmentChoiceDialogStyle property.

C#
public static readonly BindableProperty DeleteAppointmentChoiceDialogStyleProperty

Identifies the DeleteRecurrenceChoiceDialogStyle property.

C#
public static readonly BindableProperty DeleteRecurrenceChoiceDialogStyleProperty

Identifies the EditAppointmentDialogStyle property.

C#
public static readonly BindableProperty EditAppointmentDialogStyleProperty

Identifies the EditRecurrenceChoiceDialogStyle property.

C#
public static readonly BindableProperty EditRecurrenceChoiceDialogStyleProperty

Identifies the EditRecurrenceDialogStyle property.

C#
public static readonly BindableProperty EditRecurrenceDialogStyleProperty

Identifies the HeaderBorderStyle property.

C#
public static readonly BindableProperty HeaderBorderStyleProperty

Identifies the HeaderIndicatorLabelStyle property.

C#
public static readonly BindableProperty HeaderIndicatorLabelStyleProperty

HeaderLabelStyleProperty

BindableProperty

Identifies the HeaderLabelStyle property.

C#
public static readonly BindableProperty HeaderLabelStyleProperty

HeaderTextProperty

BindableProperty

Identifies the HeaderText property.

C#
public static readonly BindableProperty HeaderTextProperty

Identifies the IncreaseVisibleRangeButtonStyle property.

C#
public static readonly BindableProperty IncreaseVisibleRangeButtonStyleProperty

Identifies the IncreaseVisibleRangeCommand bindable property.

C#
public static readonly BindableProperty IncreaseVisibleRangeCommandProperty

InteractionModeProperty

BindableProperty

Identifies the InteractionMode property.

C#
public static readonly BindableProperty InteractionModeProperty

Identifies the IsTodayButtonVisible property.

C#
public static readonly BindableProperty IsTodayButtonVisibleProperty

MaxDateProperty

BindableProperty

Identifies the MaxDate property.

C#
public static readonly BindableProperty MaxDateProperty

MinDateProperty

BindableProperty

Identifies the MinDate property.

C#
public static readonly BindableProperty MinDateProperty

Identifies the MonthDayDoubleTapCommand bindable property.

C#
public static readonly BindableProperty MonthDayDoubleTapCommandProperty

Identifies the MonthDayTapCommand bindable property.

C#
public static readonly BindableProperty MonthDayTapCommandProperty

Identifies the PreviewAppointmentDialogStyle property.

C#
public static readonly BindableProperty PreviewAppointmentDialogStyleProperty

Identifies the SlotDoubleTapCommand bindable property.

C#
public static readonly BindableProperty SlotDoubleTapCommandProperty

SlotTapCommandProperty

BindableProperty

Identifies the SlotTapCommand bindable property.

C#
public static readonly BindableProperty SlotTapCommandProperty

TodayButtonStyleProperty

BindableProperty

Identifies the TodayButtonStyle property.

C#
public static readonly BindableProperty TodayButtonStyleProperty

TodayCommandProperty

BindableProperty

Identifies the TodayCommand bindable property.

C#
public static readonly BindableProperty TodayCommandProperty

Identifies the ViewDefinitionHeaderItemStyle property.

C#
public static readonly BindableProperty ViewDefinitionHeaderItemStyleProperty

ViewDefinitionsProperty

BindableProperty

Identifies the ViewDefinitions property.

C#
public static readonly BindableProperty ViewDefinitionsProperty

VisibleRangeProperty

BindableProperty

Identifies the VisibleRange property.

C#
public static readonly BindableProperty VisibleRangeProperty

Properties

Gets or sets the currently active view definition that determines how the scheduler displays dates and appointments. This property controls the visual layout, time slots, and navigation behavior of the scheduler.

C#
public ViewDefinitionBase ActiveViewDefinition { get; set; }
Property Value:

A ViewDefinitionBase-derived object (DayViewDefinition, WeekViewDefinition, MonthViewDefinition, etc.).

Gets or sets the style for the active view definition item that is displayed in the header.

C#
public Style ActiveViewDefinitionHeaderItemStyle { get; set; }

Gets or sets the zero-based index of the currently active view definition. This property allows programmatic switching between different view types defined in the ViewDefinitions collection.

C#
public int ActiveViewDefinitionIndex { get; set; }
Property Value:

An integer representing the index of the active view definition. Default is -1 (no active view).

Remarks:

When set, this property automatically updates the ActiveViewDefinition property to the corresponding ViewDefinitionBase object from the ViewDefinitions collection. Setting an invalid index has no effect.

Gets the actual style of the active view definition item that is displayed in the header.

C#
public Style ActualActiveViewDefinitionHeaderItemStyle { get; }

Gets the actual style of the add appointment button.

C#
public Style ActualAddAppointmentButtonStyle { get; }

Gets the actual style of the Button that navigates to the previous view.

C#
public Style ActualDecreaseVisibleRangeButtonStyle { get; }

Gets the actual style for the delete appointment choice dialog control of type SchedulerDialog.

C#
public Style ActualDeleteAppointmentChoiceDialogStyle { get; }

Gets the actual style for the delete recurrence choice dialog control of type SchedulerDialog.

C#
public Style ActualDeleteRecurrenceChoiceDialogStyle { get; }

Gets the actual style for the edit appointment dialog control of type SchedulerDialog.

C#
public Style ActualEditAppointmentDialogStyle { get; }

Gets the actual style for the edit recurrence choice dialog control of type SchedulerDialog.

C#
public Style ActualEditRecurrenceChoiceDialogStyle { get; }

Gets the actual style for the edit recurrence dialog control of type SchedulerDialog.

C#
public Style ActualEditRecurrenceDialogStyle { get; }

Gets the actual style for the header border.

C#
public Style ActualHeaderBorderStyle { get; }

Gets the actual style of the header indicator label.

C#
public Style ActualHeaderIndicatorLabelStyle { get; }

Gets the actual style for the header label.

C#
public Style ActualHeaderLabelStyle { get; }

Gets the actual style of the Button that navigates to the next view.

C#
public Style ActualIncreaseVisibleRangeButtonStyle { get; }

Gets the actual style for the preview appointment dialog control of type SchedulerDialog. This dialog is only used in Android and iOS.

C#
public Style ActualPreviewAppointmentDialogStyle { get; }

Gets the actual style of the today button.

C#
public Style ActualTodayButtonStyle { get; }

Gets the actual style of the view definition item that is displayed in the header.

C#
public Style ActualViewDefinitionHeaderItemStyle { get; }

Gets or sets the style applied to the "Add Appointment" button in the scheduler header. This button allows users to quickly create a new appointment.

C#
public Style AddAppointmentButtonStyle { get; set; }
Property Value:

A Style object that targets the Add Appointment button.

Remarks:

The Add Appointment button executes the AddAppointmentCommand when tapped, opening the appointment creation dialog. You can style button properties like background color, text color, font, icon, border, and size.

Gets or sets the command that is executed when the add appointment button is clicked. This command opens the appointment creation dialog.

C#
public ICommand AddAppointmentCommand { get; set; }
Property Value:

The command to execute. The default value is an instance of AddAppointmentCommand.

Remarks:

The command can be used to customize the behavior when users click the add appointment button in the scheduler header. By default, it opens the appointment creation dialog. You can replace this with a custom ICommand implementation to provide different behavior.

Gets or sets the command executed when an agenda item is double-tapped in agenda view. The command parameter is a SchedulerNode object representing the double-tapped agenda item.

C#
public ICommand AgendaItemDoubleTapCommand { get; set; }
Property Value:

An ICommand that receives a SchedulerNode parameter representing the double-tapped agenda item.

Remarks:

This command is only applicable in agenda view and provides a way to handle agenda item double-tap events. The SchedulerNode parameter represents the specific agenda item that was double-tapped, allowing for item-specific operations.

On desktop platforms (Windows/macOS), double-tapping an agenda item automatically opens the appointment edit dialog. On mobile platforms (iOS/Android), single tap is used for dialog opening, while double-tap fires this command.

Gets or sets the command executed when an agenda item is tapped (single tap) in agenda view. The command parameter is a SchedulerNode object representing the tapped agenda item.

C#
public ICommand AgendaItemTapCommand { get; set; }
Property Value:

An ICommand that receives a SchedulerNode parameter representing the tapped agenda item.

Remarks:

This command is only applicable in agenda view and provides a way to handle agenda item tap events. The SchedulerNode parameter represents the specific agenda item that was tapped, allowing for item-specific operations.

Gets or sets the command executed when an appointment is double-tapped. The command parameter is an Occurrence object representing the double-tapped appointment instance.

C#
public ICommand AppointmentDoubleTapCommand { get; set; }
Property Value:

An ICommand that receives an Occurrence parameter representing the double-tapped appointment.

Remarks:

This command provides a way to handle appointment double-tap events programmatically. The Occurrence parameter contains information about the specific appointment instance, including the underlying IAppointment data, actual start/end times (for recurring appointments), and recurrence state.

On desktop platforms (Windows/macOS), double-tapping an appointment automatically opens the edit appointment dialog. On mobile platforms (iOS/Android), single tap is used for dialog opening, while double-tap fires this command.

Gets or sets the collection of appointments to be displayed in the scheduler. This property supports data binding and automatically updates the scheduler when the collection changes.

C#
public IEnumerable<IAppointment> AppointmentsSource { get; set; }
Property Value:

An IEnumerable<IAppointment> collection containing the appointments to display.

Remarks:

The appointments source can be any collection implementing IEnumerable<Appointment>. For automatic UI updates when appointments are added/removed, use ObservableCollection<Appointment>. Each appointment must implement the IAppointment interface with properties like Start, End, Subject, etc.

You can use the following types for this collection:

  • Appointment - A complete ready-to-use implementation of IAppointment with additional properties like Body, Location, UniqueId, and URL. This is the recommended type for most scenarios as it provides all necessary functionality out-of-the-box.
  • IAppointment - The core interface that defines the contract for appointment objects. This interface must be implemented if creating custom appointment types. Requires implementing properties like Start, End, Subject, IsAllDay, RecurrenceRule, TimeZone, plus methods for Copy(), CopyFrom(), Equals(), and INotifyPropertyChanged support.

Gets or sets the style selector that provides dynamic styling for appointments based on their properties. This allows different appointments to have different visual appearances based on custom logic.

C#
public IStyleSelector AppointmentStyleSelector { get; set; }
Property Value:

An IStyleSelector implementation that returns appropriate styles for appointments.

Remarks:

The AppointmentStyleSelector provides more flexibility than a single AppointmentTemplate by allowing conditional styling based on appointment properties like subject, category, importance, or custom data. The selector receives the appointment's Occurrence object and should return an appropriate Style.

Gets or sets the command executed when an appointment is tapped (single tap). The command parameter is an Occurrence object representing the tapped appointment instance.

C#
public ICommand AppointmentTapCommand { get; set; }
Property Value:

An ICommand that receives an Occurrence parameter representing the tapped appointment.

Remarks:

This command provides a way to handle appointment tap events programmatically. The Occurrence parameter contains information about the specific appointment instance, including the underlying IAppointment data, actual start/end times (for recurring appointments), and recurrence state.

On mobile platforms (iOS/Android), tapping an appointment also automatically opens the appointment preview dialog. On desktop platforms (Windows/macOS), double-tap is used for dialog opening, while single tap only fires this command.

Gets or sets the data template used to customize the visual representation of appointments. This template defines how appointment data is displayed within each appointment slot.

C#
public DataTemplate AppointmentTemplate { get; set; }
Property Value:

A DataTemplate that defines the appointment's visual structure and data binding.

Remarks:

The AppointmentTemplate allows complete customization of appointment appearance, including layout, colors, fonts, and additional elements. The template's BindingContext is set to the Occurrence object, which provides access to the underlying IAppointment data and timing information. When null, appointments use the default built-in template showing the subject text.

ControlTemplate

ControlTemplate

Gets or sets the control template that defines the visual structure of the RadScheduler. Use this property to completely customize the layout and appearance of the scheduler, including headers, content areas, and navigation buttons.

C#
public ControlTemplate ControlTemplate { get; set; }
Property Value:

A ControlTemplate that defines the visual tree for the scheduler.

Gets or sets the culture information used for date formatting, localization, and cultural conventions. This property affects date/time display formats, first day of the week, and localized text throughout the scheduler.

C#
public CultureInfo Culture { get; set; }
Property Value:

A CultureInfo object representing the desired culture. When null, uses the system's current culture.

Remarks:

The culture setting affects:

  • Date and time formatting in headers and appointments
  • First day of the week in week and month views

Gets or sets the primary date that determines the visible range of the scheduler. The actual visible range depends on the active view definition. For example, in WeekView, this date determines which week is displayed; in MonthView, which month is shown.

C#
public DateTime CurrentDate { get; set; }
Property Value:

A DateTime representing the focal date for the current view. Default is today's date.

Remarks:

This property supports two-way data binding. When the user navigates to different dates using gestures or navigation buttons, this property is automatically updated.

Gets or sets the style applied to the backward navigation button in the scheduler header. This button allows users to navigate to the previous time period (previous week, month, etc.).

C#
public Style DecreaseVisibleRangeButtonStyle { get; set; }
Property Value:

A Style object that targets the backward navigation button.

Remarks:

The backward navigation button executes the DecreaseVisibleRangeCommand when tapped. The navigation decrement depends on the active view definition (1 day for day view, 1 week for week view, etc.). You can style button properties like background color, text color, font, border, and size.

Gets or sets the command executed when navigating to the previous time period (backward navigation). This command is triggered by the backward navigation button or programmatic navigation calls.

C#
public ICommand DecreaseVisibleRangeCommand { get; set; }
Property Value:

An ICommand that handles backward navigation. Default is the built-in DecreaseVisibleRangeCommand.

Remarks:

This command is executed when:

  • The user taps the backward navigation button
  • Swipe gestures navigate backward (when InteractionMode allows)
  • Programmatic navigation methods are called

You can provide a custom command to handle navigation events or add additional logic.

Gets or sets the Style that will be applied on the delete appointment choice dialog control of type SchedulerDialog.

C#
public Style DeleteAppointmentChoiceDialogStyle { get; set; }

Gets or sets the Style that will be applied on the delete recurrence choice dialog control of type SchedulerDialog.

C#
public Style DeleteRecurrenceChoiceDialogStyle { get; set; }

Gets or sets the Style that will be applied on the edit appointment dialog control of type SchedulerDialog.

C#
public Style EditAppointmentDialogStyle { get; set; }

Gets or sets the Style that will be applied on the edit recurrence choice dialog control of type SchedulerDialog.

C#
public Style EditRecurrenceChoiceDialogStyle { get; set; }

Gets or sets the Style that will be applied on the edit recurrence dialog control of type SchedulerDialog.

C#
public Style EditRecurrenceDialogStyle { get; set; }

Gets or sets the style applied to the border element that contains the scheduler header. This style controls the visual appearance of the container around the header content.

C#
public Style HeaderBorderStyle { get; set; }
Property Value:

A Style object that targets the header border element.

Remarks:

The header border surrounds the entire header area including navigation buttons, title, and view switcher. You can style properties like background color, border thickness, corner radius, and padding.

Gets or sets the style for the header indicator label.

C#
public Style HeaderIndicatorLabelStyle { get; set; }

Gets or sets the style applied to the label that displays the current date range in the scheduler header. This style controls the appearance of the main header text showing the current view's date information.

C#
public Style HeaderLabelStyle { get; set; }
Property Value:

A Style object that targets the header label element.

Remarks:

The header label displays formatted date information based on the active view definition and HeaderTextFormat property. For example, it might show "October 2023" in month view or "October 16-22, 2023" in week view. You can style text properties like font size, color, weight, and alignment.

Gets the header text of the scheduler.

C#
public string HeaderText { get; }

Gets or sets the style applied to the forward navigation button in the scheduler header. This button allows users to navigate to the next time period (next week, month, etc.).

C#
public Style IncreaseVisibleRangeButtonStyle { get; set; }
Property Value:

A Style object that targets the forward navigation button.

Remarks:

The forward navigation button executes the IncreaseVisibleRangeCommand when tapped. The navigation increment depends on the active view definition (1 day for day view, 1 week for week view, etc.). You can style button properties like background color, text color, font, border, and size.

Gets or sets the command executed when navigating to the next time period (forward navigation). This command is triggered by the forward navigation button or programmatic navigation calls.

C#
public ICommand IncreaseVisibleRangeCommand { get; set; }
Property Value:

An ICommand that handles forward navigation. Default is the built-in IncreaseVisibleRangeCommand.

Remarks:

This command is executed when:

  • The user taps the forward navigation button
  • Swipe gestures navigate forward (when InteractionMode allows)
  • Programmatic navigation methods are called

You can provide a custom command to handle navigation events or add additional logic.

Gets or sets the interaction mode that controls how users can navigate and interact with the scheduler. This property determines which touch gestures are enabled for navigation between time periods.

C#
public SchedulerInteractionMode InteractionMode { get; set; }
Property Value:

A SchedulerInteractionMode value that specifies the enabled interaction types.

Remarks:

Available interaction modes:

  • None: Disables gesture-based navigation; users can only navigate using buttons
  • Pan: Enables pan gesture navigation between time periods (swipe left/right to navigate)

When Pan mode is enabled, users can swipe horizontally to move between weeks, months, or days depending on the active view definition. This provides a more fluid navigation experience.

Gets or sets a value indicating whether the "Today" button is visible in the scheduler header. When visible, this button allows users to quickly navigate to the current date regardless of the current view.

C#
public bool IsTodayButtonVisible { get; set; }
Property Value:

True if the Today button should be visible; otherwise, false. Default is true.

Remarks:

The Today button appears in the scheduler header and executes the TodayCommand when tapped. Hiding this button removes one navigation option but may be useful for custom UI layouts.

Gets or sets the maximum date that can be navigated to in the scheduler. This property restricts forward navigation and prevents displaying dates later than the specified maximum.

C#
public DateTime MaxDate { get; set; }
Property Value:

A DateTime representing the maximum navigable date. Default is "2099, 12, 31".

Remarks:

If the user attempts to navigate to a date later than MaxDate, the scheduler will automatically clamp the visible range to MaxDate.

Gets or sets the minimum date that can be navigated to in the scheduler. This property restricts backward navigation and prevents displaying dates earlier than the specified minimum.

C#
public DateTime MinDate { get; set; }
Property Value:

A DateTime representing the minimum navigable date. Default is "2000, 1, 1".

Remarks:

If the user attempts to navigate to a date earlier than MinDate, the scheduler will automatically clamp the visible range to MinDate.

Gets or sets the command executed when a day cell is double-tapped in month view. The command parameter is a DateTime representing the double-tapped date.

C#
public ICommand MonthDayDoubleTapCommand { get; set; }
Property Value:

An ICommand that receives a DateTime parameter representing the double-tapped date.

Remarks:

This command is only applicable in month view and provides a way to handle day cell double-tap events. The DateTime parameter represents the specific date that was double-tapped, allowing for day-specific operations.

On desktop platforms (Windows/macOS), double-tapping a day in month view automatically opens the create appointment dialog for that date. On mobile platforms (iOS/Android), single tap is used for dialog opening.

Gets or sets the command executed when a day cell is tapped in month view (single tap). The command parameter is a DateTime representing the tapped date.

C#
public ICommand MonthDayTapCommand { get; set; }
Property Value:

An ICommand that receives a DateTime parameter representing the tapped date.

Remarks:

This command is only applicable in month view and provides a way to handle day cell tap events. The DateTime parameter represents the specific date that was tapped, allowing for day-specific operations.

On mobile platforms (iOS/Android), tapping a day in month view also automatically opens the create appointment dialog for that date. On desktop platforms (Windows/macOS), double-tap is used for dialog opening.

Gets or sets the Style that will be applied on the preview appointment dialog control of type SchedulerDialog. This dialog is only used in Android and iOS.

C#
public Style PreviewAppointmentDialogStyle { get; set; }

Gets or sets the command executed when an empty time slot is double-tapped. The command parameter is a Slot object representing the double-tapped time slot.

C#
public ICommand SlotDoubleTapCommand { get; set; }
Property Value:

An ICommand that receives a Slot parameter representing the double-tapped time slot.

Remarks:

This command provides a way to handle time slot double-tap events programmatically. The Slot parameter contains the start and end times of the double-tapped slot, which can be used to create new appointments or perform other slot-related operations.

On desktop platforms (Windows/macOS), double-tapping an empty slot automatically opens the create appointment dialog. On mobile platforms (iOS/Android), single tap is used for dialog opening, while double-tap fires this command.

Gets or sets the command executed when an empty time slot is tapped (single tap). The command parameter is a Slot object representing the tapped time slot.

C#
public ICommand SlotTapCommand { get; set; }
Property Value:

An ICommand that receives a Slot parameter representing the tapped time slot.

Remarks:

This command provides a way to handle time slot tap events programmatically. The Slot parameter contains the start and end times of the tapped slot, which can be used to create new appointments or perform other slot-related operations.

On mobile platforms (iOS/Android), tapping an empty slot also automatically opens the create appointment dialog. On desktop platforms (Windows/macOS), double-tap is used for dialog opening, while single tap only fires this command.

Gets or sets the style applied to the "Today" button in the scheduler header. This button allows users to quickly navigate to the current date from any other date.

C#
public Style TodayButtonStyle { get; set; }
Property Value:

A Style object that targets the Today button.

Remarks:

The Today button executes the TodayCommand when tapped, setting the CurrentDate to DateTime.Today. The button is only visible when the IsTodayButtonVisible property is true (default). You can style button properties like background color, text color, font, border, and size.

Gets or sets the command executed when the Today button is tapped or when navigating to the current date. This command allows users to quickly return to today's date from any other date in the scheduler.

C#
public ICommand TodayCommand { get; set; }
Property Value:

An ICommand that handles today navigation. Default is the built-in TodayCommand.

Remarks:

This command is executed when:

  • The user taps the Today button (if visible)
  • Programmatic navigation to today is requested

The command updates the CurrentDate property to DateTime.Today and refreshes the view accordingly.

Gets or sets the style for the view definition item that is displayed in the header.

C#
public Style ViewDefinitionHeaderItemStyle { get; set; }

Gets the collection of view definitions that determine the available viewing modes for the scheduler. Each view definition specifies how dates and time slots are displayed and organized.

C#
public ObservableCollection<ViewDefinitionBase> ViewDefinitions { get; }
Property Value:

An ObservableCollection<ViewDefinitionBase> containing the available view definitions.

Remarks:

The ViewDefinitions collection supports various view types:

  • DayViewDefinition - Shows a single day with detailed hourly time slots for precise appointment scheduling
  • WeekViewDefinition - Displays a complete week (7 days) with configurable first day of week and weekend visibility
  • MonthViewDefinition - Provides a traditional monthly calendar view with 42-day grid layout
  • MultidayViewDefinition - Shows a custom number of consecutive days (2-10) in timeline format
  • AgendaViewDefinition - Presents the appointments in a vertically scrolling, chronological list grouped by month, week, and day.

Users can switch between view definitions using the header controls or programmatically via the ActiveViewDefinitionIndex property. Each view definition can have its own title and formatting options.

Gets the visible range of the scheduler.

C#
public IDateRange VisibleRange { get; }

Methods

Opens the create appointment dialog, allowing the user to create a new appointment for the specified time range. This method programmatically triggers the same dialog that appears when users tap empty time slots.

C#
public void CreateAppointmentWithDialog(DateRange range, bool isAllDay = false)
Parameters:rangeDateRange

The date and time range for the new appointment. This sets the initial start and end times in the dialog.

isAllDaybool

Whether the appointment should be created as an all-day appointment. Default is false.

Remarks:

The create appointment dialog provides fields for entering appointment details like subject, description, recurrence pattern, and other properties. The dialog's appearance can be customized using the EditAppointmentDialogStyle property.

When the user saves the appointment, it should be added to the AppointmentsSource collection to appear in the scheduler. The dialog behavior may vary slightly between platforms (mobile vs desktop).

Opens the delete appointment confirmation dialog, allowing the user to delete an existing appointment occurrence. This method provides a user-friendly way to delete appointments with proper confirmation prompts.

C#
public void DeleteAppointmentWithDialog(Occurrence occurrence)
Parameters:occurrenceOccurrence

The appointment occurrence to delete. This identifies the specific appointment instance to remove.

Remarks:

The delete appointment dialog provides confirmation before deletion and handles different scenarios:

  • For single appointments: Shows a simple delete confirmation
  • For recurring appointments: May offer options to delete just this occurrence or the entire series

The dialog's appearance can be customized using the DeleteAppointmentChoiceDialogStyle and DeleteRecurrenceChoiceDialogStyle properties for different dialog types.

When the user confirms deletion, the appointment should be removed from the AppointmentsSource collection. The dialog behavior may vary between platforms, with desktop platforms showing more detailed confirmation options.

Opens the edit appointment dialog, allowing the user to modify an existing appointment occurrence. This method programmatically triggers the same dialog that appears when users tap appointments.

C#
public void EditAppointmentWithDialog(Occurrence occurrence)
Parameters:occurrenceOccurrence

The appointment occurrence to edit. This provides the current appointment data and timing information.

Remarks:

The edit appointment dialog is pre-populated with the current appointment data and allows modification of properties like subject, description, time, recurrence pattern, and other details.

For recurring appointments, the dialog may present options to edit just this occurrence or the entire series. The dialog's appearance can be customized using the EditAppointmentDialogStyle property.

When the user saves changes, the underlying appointment object in the AppointmentsSource collection should be updated. The dialog behavior may vary slightly between platforms (mobile vs desktop).

C#
protected override void OnApplyTemplate()

Invoked whenever the binding context of the control changes.

C#
protected override void OnBindingContextChanged()

Overrides: RadContentView.OnBindingContextChanged()

C#
protected override void OnPropertyChanged(string propertyName = null)
Parameters:propertyNamestring

Scrolls the scheduler to bring the specified appointment into view. This method is useful for programmatically navigating to a specific appointment within the current date view based on the master appointment object.

C#
public void ScrollIntoView(IAppointment appointment)
Parameters:appointmentIAppointment

The appointment to scroll into view. This identifies the specific appointment instance.

Remarks:

If the scheduler is not yet loaded when this method is called, the scroll operation will be deferred until loading completes. The scroll operation is animated by default to provide smooth user experience.

Scrolls the scheduler to bring the specified appointment occurrence into view. This method is useful for programmatically navigating to a specific appointment within the current date view.

C#
public void ScrollIntoView(Occurrence occurrence)
Parameters:occurrenceOccurrence

The appointment occurrence to scroll into view. This identifies the specific appointment instance.

Remarks:

If the scheduler is not yet loaded when this method is called, the scroll operation will be deferred until loading completes. The scroll operation is animated by default to provide smooth user experience.

Scrolls the scheduler vertically to bring the specified time into view. This method is useful for programmatically navigating to a specific time of day within the current date view.

C#
public void ScrollIntoView(TimeOnly time)
Parameters:timeTimeOnly

The time to scroll to. This represents the time of day (hours and minutes) to make visible.

Remarks:

This method only applies to views that display time slots (DayView, WeekView, MultidayView) and has no effect in MonthView. If the scheduler is not yet loaded when this method is called, the scroll operation will be deferred until loading completes. The scroll operation is animated by default to provide smooth user experience.

Events

Occurs when the user double-taps on an agenda item in agenda view. This event provides access to the double-tapped agenda item and allows custom handling of item interactions.

C#
public event EventHandler<TappedEventArgs<SchedulerNode>> AgendaItemDoubleTapped
Remarks:

This event is raised in conjunction with the AgendaItemDoubleTapCommand. The event args contain a TappedEventArgs<SchedulerNode> with the SchedulerNode object representing the double-tapped agenda item. This event only applies to Agenda view and is not raised in Day, Week, Month, or Multiday views.

Occurs when the user taps (single tap) on an agenda item in agenda view. This event provides access to the tapped agenda item and allows custom handling of item interactions.

C#
public event EventHandler<TappedEventArgs<SchedulerNode>> AgendaItemTapped
Remarks:

This event is raised in conjunction with the AgendaItemTapCommand. The event args contain a TappedEventArgs<SchedulerNode> with the SchedulerNode object representing the tapped agenda item. This event only applies to Agenda view and is not raised in Day, Week, Month, or Multiday views.

Occurs when the user double-taps on an appointment. This event provides access to the double-tapped appointment data and allows custom handling of appointment interactions.

C#
public event EventHandler<TappedEventArgs<Occurrence>> AppointmentDoubleTapped
Remarks:

This event is raised in conjunction with the AppointmentDoubleTapCommand. The event args contain a TappedEventArgs<Occurrence> with the Occurrence object representing the double-tapped appointment instance.

Platform behavior:

  • On desktop platforms (Windows/macOS): Double-tap also opens the appointment edit dialog
  • On mobile platforms (iOS/Android): Only fires the event; single tap opens the dialog

The Occurrence object provides access to both the underlying IAppointment data and the specific instance information for recurring appointments.

Occurs when the user taps (single tap) on an appointment. This event provides access to the tapped appointment data and allows custom handling of appointment interactions.

C#
public event EventHandler<TappedEventArgs<Occurrence>> AppointmentTapped
Remarks:

This event is raised in conjunction with the AppointmentTapCommand. The event args contain a TappedEventArgs<Occurrence> with the Occurrence object representing the tapped appointment instance.

Platform behavior:

  • On mobile platforms (iOS/Android): Single tap also opens the appointment preview/edit dialog
  • On desktop platforms (Windows/macOS): Only fires the event; double-tap opens the dialog

The Occurrence object provides access to both the underlying IAppointment data and the specific instance information for recurring appointments.

Occurs when a scheduler dialog is about to be closed. This event allows handling of dialog closing operations and accessing any changes made in the dialog.

C#
public event EventHandler<SchedulerDialogClosingEventArgs> DialogClosing
Remarks:

This event is raised before any of the built-in scheduler dialogs are closed, including:

  • Create appointment dialog
  • Edit appointment dialog
  • Delete confirmation dialogs
  • Recurrence editing dialogs

The event args provide information about the dialog type. This is useful for implementing custom save logic or validation before the dialog closes.

Occurs when a scheduler dialog is about to be opened. This event allows customization or cancellation of dialog opening operations.

C#
public event EventHandler<SchedulerDialogOpeningEventArgs> DialogOpening
Remarks:

This event is raised before any of the built-in scheduler dialogs are displayed, including:

  • Create appointment dialog
  • Edit appointment dialog
  • Delete confirmation dialogs
  • Recurrence editing dialogs

The event args provide information about the dialog type and allow cancellation of the dialog opening. This is useful for implementing custom dialogs or modifying dialog behavior based on application logic.

Occurs when the user double-taps on a day cell in month view. This event provides access to the double-tapped date and allows custom handling of day interactions in month view.

C#
public event EventHandler<TappedEventArgs<DateTime>> MonthDayDoubleTapped
Remarks:

This event is raised in conjunction with the MonthDayDoubleTapCommand. The event args contain a TappedEventArgs<DateTime> with the DateTime representing the double-tapped date.

Platform behavior:

  • On desktop platforms (Windows/macOS): Double-tap also opens the create appointment dialog for that date
  • On mobile platforms (iOS/Android): Only fires the event; single tap opens the dialog

This event only applies to Month view and is not raised in Day, Week, or Multiday views.

Occurs when the user taps (single tap) on a day cell in month view. This event provides access to the tapped date and allows custom handling of day selection in month view.

C#
public event EventHandler<TappedEventArgs<DateTime>> MonthDayTapped
Remarks:

This event is raised in conjunction with the MonthDayTapCommand. The event args contain a TappedEventArgs<DateTime> with the DateTime representing the tapped date.

Platform behavior:

  • On mobile platforms (iOS/Android): Single tap also opens the create appointment dialog for that date
  • On desktop platforms (Windows/macOS): Only fires the event; double-tap opens the dialog

This event only applies to Month view and is not raised in Day, Week, or Multiday views.

Occurs when the user double-taps on an empty time slot. This event provides access to the double-tapped time slot information and allows custom handling of slot interactions.

C#
public event EventHandler<TappedEventArgs<Slot>> SlotDoubleTapped
Remarks:

This event is raised in conjunction with the SlotDoubleTapCommand. The event args contain a TappedEventArgs<Slot> with the Slot object representing the double-tapped time slot's date and time range.

Platform behavior:

  • On desktop platforms (Windows/macOS): Double-tap also opens the create appointment dialog
  • On mobile platforms (iOS/Android): Only fires the event; single tap opens the dialog

This event only applies to views with time slots (Day, Week, Multiday) and not to Month view.

Occurs when the user taps (single tap) on an empty time slot. This event provides access to the tapped time slot information and allows custom handling of slot interactions.

C#
public event EventHandler<TappedEventArgs<Slot>> SlotTapped
Remarks:

This event is raised in conjunction with the SlotTapCommand. The event args contain a TappedEventArgs<Slot> with the Slot object representing the tapped time slot's date and time range.

Platform behavior:

  • On mobile platforms (iOS/Android): Single tap also opens the create appointment dialog
  • On desktop platforms (Windows/macOS): Only fires the event; double-tap opens the dialog

This event only applies to views with time slots (Day, Week, Multiday) and not to Month view.

In this article
DefinitionConstructorsRadScheduler()FieldsActiveViewDefinitionHeaderItemStylePropertyActiveViewDefinitionIndexPropertyActiveViewDefinitionPropertyActualActiveViewDefinitionHeaderItemStylePropertyActualDecreaseVisibleRangeButtonStylePropertyActualDeleteAppointmentChoiceDialogStylePropertyActualDeleteRecurrenceChoiceDialogStylePropertyActualEditAppointmentDialogStylePropertyActualEditRecurrenceChoiceDialogStylePropertyActualEditRecurrenceDialogStylePropertyActualHeaderBorderStylePropertyActualHeaderIndicatorLabelStylePropertyActualHeaderLabelStylePropertyActualIncreaseVisibleRangeButtonStylePropertyActualPreviewAppointmentDialogStylePropertyActualTodayButtonStylePropertyActualViewDefinitionHeaderItemStylePropertyAddAppointmentButtonStylePropertyAddAppointmentCommandPropertyAgendaItemDoubleTapCommandPropertyAgendaItemTapCommandPropertyAppointmentDoubleTapCommandPropertyAppointmentStyleSelectorPropertyAppointmentTapCommandPropertyAppointmentTemplatePropertyAppointmentsSourcePropertyControlTemplatePropertyCulturePropertyCurrentDatePropertyDecreaseVisibleRangeButtonStylePropertyDecreaseVisibleRangeCommandPropertyDeleteAppointmentChoiceDialogStylePropertyDeleteRecurrenceChoiceDialogStylePropertyEditAppointmentDialogStylePropertyEditRecurrenceChoiceDialogStylePropertyEditRecurrenceDialogStylePropertyHeaderBorderStylePropertyHeaderIndicatorLabelStylePropertyHeaderLabelStylePropertyHeaderTextPropertyIncreaseVisibleRangeButtonStylePropertyIncreaseVisibleRangeCommandPropertyInteractionModePropertyIsTodayButtonVisiblePropertyMaxDatePropertyMinDatePropertyMonthDayDoubleTapCommandPropertyMonthDayTapCommandPropertyPreviewAppointmentDialogStylePropertySlotDoubleTapCommandPropertySlotTapCommandPropertyTodayButtonStylePropertyTodayCommandPropertyViewDefinitionHeaderItemStylePropertyViewDefinitionsPropertyVisibleRangePropertyPropertiesActiveViewDefinitionActiveViewDefinitionHeaderItemStyleActiveViewDefinitionIndexActualActiveViewDefinitionHeaderItemStyleActualAddAppointmentButtonStyleActualDecreaseVisibleRangeButtonStyleActualDeleteAppointmentChoiceDialogStyleActualDeleteRecurrenceChoiceDialogStyleActualEditAppointmentDialogStyleActualEditRecurrenceChoiceDialogStyleActualEditRecurrenceDialogStyleActualHeaderBorderStyleActualHeaderIndicatorLabelStyleActualHeaderLabelStyleActualIncreaseVisibleRangeButtonStyleActualPreviewAppointmentDialogStyleActualTodayButtonStyleActualViewDefinitionHeaderItemStyleAddAppointmentButtonStyleAddAppointmentCommandAgendaItemDoubleTapCommandAgendaItemTapCommandAppointmentDoubleTapCommandAppointmentStyleSelectorAppointmentTapCommandAppointmentTemplateAppointmentsSourceControlTemplateCultureCurrentDateDecreaseVisibleRangeButtonStyleDecreaseVisibleRangeCommandDeleteAppointmentChoiceDialogStyleDeleteRecurrenceChoiceDialogStyleEditAppointmentDialogStyleEditRecurrenceChoiceDialogStyleEditRecurrenceDialogStyleHeaderBorderStyleHeaderIndicatorLabelStyleHeaderLabelStyleHeaderTextIncreaseVisibleRangeButtonStyleIncreaseVisibleRangeCommandInteractionModeIsTodayButtonVisibleMaxDateMinDateMonthDayDoubleTapCommandMonthDayTapCommandPreviewAppointmentDialogStyleSlotDoubleTapCommandSlotTapCommandTodayButtonStyleTodayCommandViewDefinitionHeaderItemStyleViewDefinitionsVisibleRangeMethodsCreateAppointmentWithDialog(DateRange, bool)DeleteAppointmentWithDialog(Occurrence)EditAppointmentWithDialog(Occurrence)OnApplyTemplate()OnBindingContextChanged()OnPropertyChanged(string)ScrollIntoView(IAppointment)ScrollIntoView(Occurrence)ScrollIntoView(TimeOnly)EventsAgendaItemDoubleTappedAgendaItemTappedAppointmentDoubleTappedAppointmentTappedDialogClosingDialogOpeningMonthDayDoubleTappedMonthDayTappedSlotDoubleTappedSlotTapped
Not finding the help you need?
Contact Support