SchedulerControl.CustomAllowAppointmentCreate Event

Occurs when an end-user tries to create a new appointment.

Namespace: DevExpress.Xpf.Scheduling

Assembly: DevExpress.Xpf.Scheduling.v21.2.dll


public event AppointmentItemOperationEventHandler CustomAllowAppointmentCreate

Event Data

The CustomAllowAppointmentCreate event's data class is AppointmentItemOperationEventArgs. The following properties provide information specific to this event:

Property Description
Allow Gets or sets whether performing a particular action is allowed.
Appointment Gets the appointment for which the element is raised. Inherited from AppointmentItemEventArgs.
Recurring Gets whether the target appointment is recurring.


Handle the CustomAllowAppointmentCreate event and sets its AppointmentItemOperationEventArgs.Allow property to manage a particular case and specify whether to allow an end-user to create a new appointment. If you do not specify the required behavior manually, the SchedulerControl.AllowAppointmentCreate manages whether creating new appointments is allowed.

The appointment to be created can be accessed using the AppointmentItemEventArgs.Appointment property.

Set the AppointmentItemOperationEventArgs.Allow property to false to prevent an appointment from being created.


The SchedulerControl uses the CommandManager class to manage commands executed by the ribbon or context menu items. The RequerySuggested event is fired when any changes that can affect the command’s ability to execute (e.g., change of focus) have been made. It notifies the command that is should raise the CanExecuteChanged event, which makes the CustomAllowAppointmentCreate event to fire as well. This chain of events can occur involuntarily, so make sure that the event handler does not contain any code that may slow the application performance.


View Example

private void schedulerControl1_CustomAllowAppointmentCreate(object sender, AppointmentItemOperationEventArgs e)
    //Retrieve the selected interval:
    DateTimeRange selectedIntervalRange = schedulerControl1.SelectedInterval;
    TimeInterval selectedInterval = new TimeInterval(selectedIntervalRange.Start, selectedIntervalRange.End);

    //Check whether the selected interval intersects with the resticted interval:
    //If true, restrict appointment creation 
    e.Allow = IsIntervalAllowed(selectedInterval);
See Also