This project is read-only.

iCal support in the Events module

The Events module currently supports calendar export using the iCal spec (.ics, RFC2445. RFC5545 from version 5.2.0).

The module supports two main means of exporting events. Single/recurring event and whole module. Both of these options are always available.

Single/Recurring Event


The export of single/recurring events is achieved by clicking the appropriate link on the event detail page. A .ics file will be generated which can then be opened by MS Outlook, or imported into other applications supporting RFC5545 such as Google Calendar.

Whole Module

The module settings show the basic url that is used to generate the whole module .ics. You can also turn on the iCal icon on the icon bar for easy access to this url for your users. The url can be used within applications such as MS Outlook or Google Calendars to 'subscribe' these applications to your DNN based calendar. Please look at the documentation for those applications on how to set up subscriptions.

You can also use the following parameters in the url:-
  • CategoryName - The name of a category to filter by.
  • CategoryID - The ID of a category to filter by.
  • DaysBefore - The number of days before the current date to include in the export. Overrides the equivalent module setting.
  • DaysAfter - The number of days after the current date to include in the export. Overrides the equivalent module setting.
  • Calname - The name that should be used in the calendar (X-WR-CALNAME). Overrides the module title which is used when 'Include Calname in .ics' is enabled in module settings.


Calendar Export Settings.png
See the Description of the Events Module Settings for details on these settings.


In order to support events that cross a Daylight Saving Time Boundary, a VTIMEZONE is created within the export file. This based on the Server TimeZone, but is created as 'DNN/LocalDST' rather than any specific TimeZone because DNN does not currently support DST. So it is in effect a best guess, but which will meet most peoples needs, through it will not work for everyone. Apologies, but it is the best that can be achieved for now.

The good news is that even events that have been altered from a basic recurrence pattern will appear in the external calendar program as all being linked. Note: Recurring events are not supported for whole module exports. All events are output as single events.

Recurring events will also appear with the correct event details even if they have also been altered from the base. In essence what happens is:-
  • Create the VTIMEZONE
  • Loop through all Events in the series. If any details differ from the original, then output a VEVENT for the single instance with the correct RECURRENCE-ID to link back to the original date/time of the occurrence in the recurrence pattern.
  • If a single event has deleted (denoted by Cancelled = True in the Event record), record the Original DateTime for output later in EXDATE
  • Output a VEVENT based on EventsRecurMaster
  • Output EXDATE attribute if any dates have been deleted.
For security purposes there is a new setting in the Module Settings which allows you to disable the owner email address being exported if the exporting user is not logged on.

Attendees are also exported in the .ics via the ATTENDEE attribute. Information exported is based on that defined in the Module Settings for visibility of enrollment data on the Details View (another new feature).

Also the Priority is set according to iCal standards. So Low = 9, Medium = 5, High = 1.

Last edited Jun 8, 2012 at 10:37 AM by RogerSelwyn, version 13


No comments yet.