SchedulerOptionsCustomization.AllowAppointmentEdit Property

Gets or sets whether a user is allowed to edit appointments.

Namespace: DevExpress.XtraScheduler

Assembly: DevExpress.XtraScheduler.v19.2.Core.dll


public UsedAppointmentType AllowAppointmentEdit { get; set; }
Public Property AllowAppointmentEdit As UsedAppointmentType

Property Value

Type Default Description


An UsedAppointmentType enumeration value that specifies the type of appointment which the action can be applied to.


By default, end-users are allowed to edit appointments. Use the AllowAppointmentEdit property to control the availability of such functionality to end-users with respect to an appointment's type. If this property allows end-users to edit appointments, editing can be performed by either using an inplace editor (if the SchedulerOptionsCustomization.AllowInplaceEditor option enables this) or the Edit Appointment dialog (it can either be opened by double clicking an appointment or clicking on the Open item within the scheduler control's popup menu invoked for the desired appointment).


If the AllowAppointmentEdit property is set to UsedAppointmentType.Custom, then whether an end-user is allowed to edit appointments or not is decided in the SchedulerControl.AllowAppointmentEdit event handler.


This example demonstrates how to implement custom rules for editing and deleting appointments. The code below allows an appointment to be edited only by its owner (the end-user who created it). To do this it's necessary to set the SchedulerOptionsCustomization.AllowAppointmentEdit and SchedulerOptionsCustomization.AllowAppointmentDelete properties to UsedAppointmentType.Custom, and handle the SchedulerControl.AllowAppointmentEdit and SchedulerControl.AllowAppointmentDelete events to implement custom logic for editing appointments.

using DevExpress.XtraScheduler;
// ...

private void schedulerControl1_AllowAppointmentDelete(object sender, 
    AppointmentOperationEventArgs e) {
   // Allow only the user who created this appontment to delete it.
   e.Allow = CanUserModifyThisAppointment(e.Appointment);
private void schedulerControl1_AllowAppointmentEdit(object sender, 
    AppointmentOperationEventArgs e) {
   // Allow only the user who created this appontment to modify it.
   e.Allow = CanUserModifyThisAppointment(e.Appointment);
// Determine if the current user is the same 
// as the one who created the specified appointment 
bool CanUserModifyThisAppointment(Appointment apt) {
   object obj = apt.CustomFields["Owner"];
   if (obj == null)
      return true;
   string appointmentOwner = obj.ToString();
   if (appointmentOwner == String.Empty)
      return true;
   return (String.Compare(appointmentOwner, tbUserName.Text, true) == 0);
See Also