Search code examples
icalendar

Recurring exceptions in ICal


Problem

Some reoccurring events, that don't really end at some point (like club meetings?), depend on other conditions (like holiday season). However, manually adding these exceptions would be necessary every year, as the dates might differ.

Research

  • I have found out about exdate (see the image of "iCalendar components and their properties" on Wikipedia (2))
  • Also found some possible workaround: 'just writing a script to do process such events'. This would still mean I need to process a .ics manually and import it into my calendar, which implies some limitations:
    • can not be determined for all time spans (e.g. holidays not fixed for more than three years)
    • these events would probably be separate and not reoccurring/'grouped', which makes further edits harder

Question

Is there a way to specify recurring exceptions in iCal ?

  • To clarify, I have a recurring event and recurring exceptions.
  • So for instance I have a infinitely reoccurring weekly event, that depends on the month; where it might only take place if it's not e.g. January, August, or December.

Is there a way to use another event (/calendar) to filter events by boolean logic ?

If one could use a second event (or several) to plug into exdate this would solve the first problem and add some more possibilities.


note
if this question is too specific and the original problem could be solved by other means (other calendar-formats), feel free to comment/edit/answer


Solution

  • RFC2445 defines an EXRULE (exception rule) property. You can use that in addition to the RRULE to define recurring exceptions.

    However, RFC2445 was superseded by RFC5545, which unfortunately deprecates the EXRULE property. So, client support is questionable.

    As you already proposed, automatically adding EXDATE properties is a possible solution.