[Expand]General Information
[Expand]WinForms Controls
[Collapse]ASP.NET Controls and MVC Extensions
 [Expand]What's Installed
 [Expand]Common Concepts
 [Collapse]ASP.NET WebForms Controls
   Getting Started
  [Expand]Grid View
  [Expand]Tree List
  [Expand]Card View
  [Expand]Chart Control
  [Expand]Pivot Grid
  [Expand]Rich Text Editor
   [Expand]Product Information
    Getting Started
   [Expand]Scheduler Elements
     Scheduling Basics
     Floating Action Button
    [Expand]Data Binding
     Client-Side Functionality
     Callback Commands
     Time Zones
     iCalendar Support
     Keyboard Shortcuts
   [Expand]Visual Elements
   [Expand]Design-Time Features
   [Expand]End-User Capabilities
   [Expand]Member Tables
  [Expand]Site Navigation and Layout
  [Expand]HTML Editor
  [Expand]Vertical Grid
  [Expand]Data Editors
  [Expand]Docking and Popups
  [Expand]File Management
  [Expand]Data and Image Navigation
  [Expand]Multi-Use Site Controls
  [Expand]Spell Checker
  [Expand]Query Builder
 [Expand]ASP.NET MVC Extensions
 [Expand]Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

iCalendar Support

This document provides an overview of iCalendar format and its implementation.

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 the scheduling and calendaring information. It is currently the most supported and widely used standard to interoperate 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.

The main set of elements included in the iCalendar standard is supported. Tasks and journaling capabilities of RFC 2445, as well as descriptors and extensions specific for a particular calendar application, have been suggested for future versions.

Expanded Operation

The ASPxScheduler & XtraScheduler Core provides two classes designed for export and import operations with data in iCalendar format - the iCalendarExporter and iCalendarImporter. Their constructors take a SchedulerStorage instance as a parameter specifying the appointment's location. When the iCalendarExporter is created, it provides information on the number of objects intended for export 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 decide for each calendar item how they should be handled. 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.

You can also take advantage of the CalendarStructureCreated event. It enables you to get access to data arranged as determined by the iCalendar format.

Expanded iCalendar Structure

The iCalendarStructureCreatedEventArgs.Calendars property exposes a collection of iCalendar components. Each iCalendarComponent represents an iCalendar object as defined in RFC 2445.

The Events property provides access to a collection of VEvent objects, representing individual calendar components. A diagram for the VEvent class is shown below:

For iCalendarComponent and VEvent classes the property names correspond to properties defined in RFC 2445. For more information, refer to Internet Calendaring and Scheduling Core Object Specification.

Custom properties (non-standard properties, not defined explicitly in the iCalendar standard) are named using prefix text of "X-" followed by a short string containing a vendor identifier. You can set this identifier via the iCalendarExporter.CustomPropertyIdentifier and iCalendarImporter.CustomPropertyIdentifier properties. Note that Appointment Labels are non-standard for iCalendar, and have to be encoded using the technique described.

Every iCalendar object should also have an identifier specifying the application that created it. You can set it via the iCalendarExporter.ProductIdentifier property.

Expanded Class Diagram

Expanded See Also

Is this topic helpful?​​​​​​​