Skip to main content

SchedulerStorageBase.AppointmentChanging Event

Fires when an appointment’s property is about to change.

Namespace: DevExpress.XtraScheduler

Assembly: DevExpress.XtraScheduler.v24.1.Core.Desktop.dll

NuGet Package: DevExpress.Scheduler.CoreDesktop


public event PersistentObjectCancelEventHandler AppointmentChanging

Event Data

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

Property Description
Cancel Gets or sets whether to cancel the operation.
Object Gets the persistent object (appointment, resource or appointment dependency) for which the event occurs. Inherited from PersistentObjectEventArgs.


The AppointmentChanging event is raised when changing an appointment’s property. The appointment whose property is changed is identified by the event parameter’s PersistentObjectEventArgs.Object property. Set the PersistentObjectCancelEventArgs.Cancel to true to roll back changes and cancel the operation.

When an appointment in a series of recurring appointments changes, the AppointmentChanging event fires twice. The first time it is raised for the appointment occurrence. Do not change custom fields when the event is raised for the first time. The next time the event is raised for the changed occurrence and you can modify custom fields if required.


Do not modify the appointment’s data source or data binding within this event handler. It results in the current appointment being disposed of, and consequently, an unhandled exception occurs.


This event handler restricts the end-user from modifying appointments with busy status.

private void SchedulerStorage1_AppointmentChanging(object sender, PersistentObjectCancelEventArgs e) {
    object busyKey = schedulerStorage1.Appointments.Statuses.GetByType(AppointmentStatusType.Busy).Id;
    if (((Appointment)e.Object).StatusKey == busyKey) e.Cancel = true;


See Also