Skip to main content

iCalendar Support

  • 2 minutes to read


You are viewing documentation for the legacy WPF Scheduler control. If you’re starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

This document provides an overview of the iCalendar format and its implementation in the DXScheduler Suite for WPF.

The iCalendar format is designed to enable the communication between different scheduling applications over the Internet. The iCalendar RFC 2445 defines the requirements for openly exchanging schedule and calendar information. It is currently the most supported and widely used standard for interoperation between your application and the most popular calendars - Apple iCal, Lotus Notes, Microsoft Outlook, Google Calendar, Novell GroupWise, and Windows Calendar, just to name a few.

There are two classes designed for export and import operations with data in iCalendar format - iCalendarExporter and iCalendarImporter. When the iCalendarExporter or iCalendarImporter object is created, it provides information on the number of objects intended for exchange via the AppointmentExchanger.SourceObjectCount property. It can be used to adjust the progress indicator.

To accomplish a data exchange operation, execute the corresponding method - AppointmentExporter.Export or AppointmentImporter.Import.

You can determine how they should be handled for each calendar item. Two pairs of events are designed for this purpose. The AppointmentExporter.AppointmentExporting and AppointmentImporter.AppointmentImporting events are raised before an item is processed. The Cancel event argument enables you to exclude the item from the resulting data. The AppointmentExporter.AppointmentExported and AppointmentImporter.AppointmentImported events occur when the process is complete.


For detailed examples on how to provide SchedulerControl with the iCalendar data exchange functionality, refer to the How to: Import Data from iCalendar (legacy) and How to: Export Data to iCalendar (legacy) documents.

See Also