|
|
|
A couple of weeks ago I worked on changing the Events module over to exporting in iCal spec (.ics, RFC2445) rather than vCalendar (.vcs). The major advantages being that iCal supports recurring events.
So you now get the option to export the single event of the whole series if it is a recurring event.
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 since .Net v2 and hence DNN do not support DST. So it is in effect a best guess, but which will meet some folks need, but will certainly 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 changed from the existing recurrence pattern will appear in the external calendar program as all being linked. They will also appear with the correct event details even if they have also been altered. I won't go into all the details but 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
- Output a VEVENT based on EventsRecurMaster (this is where the RRULE created in the RecurMaster changes makes life a lot easier)
- 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).
One final thing the Priority is set according to iCal standards. So Low = 9, Medium = 5, High = 1. Previously these were exported as 3,2,1.
Previous Page | Next Page