I am a huge fan of ICS files!
There! I said it!
ICS files (or iCalendar files) are the exchange-format for calendaring informations.
Whenever you need to transport calendaring information (Events, Todos, Free/Busy time) they are the way to go.
ICS files are defined in RFC 5545 with some additions in RFC 7986 and. a pretty good summary at iCalendar.org
The big trouble though in ran into with ICS files is the … interesting … interpretation and implementation of the standard. And yes: XKCD 927 comes to mind!
So whenever I want to use one of the lesser used features in ICS I create a test-file and import that into several calendaring tools out there. Namely Google Calendar, Outlook, Apples iCal, Thunderbird and Teamup.com
Recurring events in ICS
Today I wanted to see how recurring events are handled. There are in general 2 different ways to make an event recurring.
- The first one is to define a recurrence rule, like “6 occurrences on every first Monday of the month starting at 2nd of June 2025”
- The other option is to define a range of dates and times when the event should occur, like “on the 2nd of June 2025, 7th of July 2025, 4th of August 2025, 1st of September 2025, 6th of October 2025 and 3rd of November 2025”
And to make things interesting one can combine the two ways and one can also create exceptions from the rule.
Implementing this is … a challenge. Luckily there are quite a number of libraries taking the main burden off one (use one!).
So today I wanted to see how good the choices are for the second option. Specifying a range of dates. And guess what… It sucks…
So I created an ICS file with this content and imported it into the different tools
RDATE;TZID=Europe/Berlin:20250609T110000,20250613T110000,20250616T110000,
20250620T110000,20250623T110000,20250627T110000
Google Calendar is exemplary! The event was imported as a recurring event showing up on the 6 dates. Perfect!
Thunderbird is equally exemplary! The event also was imported as recurring event showing up on the 6 dates. Perfect!
Apples iCal is not quite as good. They import the event but not as recurring event and it only shows up on the first date. So they are sadly not able to handle the RDATE attribute at all.
Teamup.com is similar to iCal in terms of interpreting the RDATE attribute. The event is imported but only shown on the first date. The recurrence is lost.
And last (and TBH least) is – again* – the Outlook webinterface. They didn’t even import the event in the first place. It just didn’t show up at all
However that influences your work is up to you.
* I will blog again about other things that are not at all implemented in Outlook…