Skip to main content

SchedulerOptionsCustomization.AllowAppointmentCreate Property

Gets or sets whether a user is allowed to create new appointments.

Namespace: DevExpress.XtraScheduler

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

NuGet Package: DevExpress.Scheduler.CoreDesktop

#Declaration

[DefaultValue(UsedAppointmentType.All)]
public UsedAppointmentType AllowAppointmentCreate { get; set; }

#Property Value

Type Default Description
UsedAppointmentType All

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

Available values:

Name Description
None

The action can’t be applied to any appointments.

Recurring

The action can be applied to recurring appointments only.

NonRecurring

The action can be applied to non-recurring appointments only.

All

The action can be applied to all the appointments.

Custom

The action is applied according to the custom method specified by the corresponding AllowAppointment~ or CustomAllowAppointment~ event of the SchedulerControl.

#Property Paths

You can access this nested property as listed below:

Library Object Type Path to AllowAppointmentCreate
WinForms Controls SchedulerControl
.OptionsCustomization .AllowAppointmentCreate
ASP.NET Bootstrap Controls BootstrapScheduler
.OptionsEditing .AllowAppointmentCreate
XAF: Cross-Platform .NET App UI & Web API ASPxSchedulerListEditor
.OptionsCustomization .AllowAppointmentCreate
ASP.NET MVC Extensions SchedulerSettings
.OptionsCustomization .AllowAppointmentCreate
ASP.NET Web Forms Controls ASPxScheduler
.OptionsCustomization .AllowAppointmentCreate

#Remarks

By default, end-users are allowed to create new appointments by using UI elements such as the scheduler’s popup menu, a View’s inplace editor or the Edit Appointment dialog. Use the AllowAppointmentCreate property to control the availability of such an action for end-users with respect to an appointment’s specific type.

Note

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

#Example

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