Skip to main content

SchedulerStorageBase.FilterAppointment Event

Hides specific appointments in the Scheduler control.

Namespace: DevExpress.XtraScheduler

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

NuGet Package: DevExpress.Scheduler.CoreDesktop


public event PersistentObjectCancelEventHandler FilterAppointment

Event Data

The FilterAppointment 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.


Handle the FilterAppointment event to hide specific appointments in the Scheduler control. This event fires each time when the layout of the Scheduler control changes (on resizing the control, adding a new appointment, modifying existing appointments, etc.) You can also force the layout update by calling the SchedulerViewBase.LayoutChanged method.

The FilterAppointment event occurs for each appointment in the Appointments storage, in turn. If the PersistentObjectCancelEventArgs.Cancel parameter is set to true for the currently processed appointment, then the Scheduler control does not display this appointment.


Subscribe to the FilterAppointment event before storage initialization (before the PersistentObjectStorage<T>.DataSource is assigned), otherwise the filter is not applied and the SchedulerStorageBase.RefreshData method call is required for proper operation.

This event allows you to specify appointments for display. Do not modify appointment properties, and do not add or remove appointments within this event handler. An attempt to do so may result in an unhandled exception.


The following example demonstrates how to filter the appointments shown within a Scheduler Control according to some condition. For this the SchedulerDataStorage.FilterAppointment event is used. The code below demonstrates how to hide all tentative appointments (those whose status is set to AppointmentStatusType.Tentative).

using DevExpress.XtraScheduler;
// ...

private void schedulerDataStorage1_FilterAppointment(object sender, PersistentObjectCancelEventArgs e) {
   // Filter all tentative appointments.
   e.Cancel = ((Appointment)e.Object).StatusId == 1;


See Also