This iterator may loop infinitely in the future, therefore it is important
that if you use this class, you set hard limits for the amount of iterations
you want to handle.
Note that currently there is not full support for the entire iCalendar
specification, as it's very complex and contains a lot of permutations
that's not yet used very often in software.
For the focus has been on features as they actually appear in Calendaring
software, but this may well get expanded as needed / on demand
The following RRULE properties are supported
* UNTIL
* INTERVAL
* COUNT
* FREQ=DAILY
* BYDAY
* BYHOUR
* BYMONTH
* FREQ=WEEKLY
* BYDAY
* BYHOUR
* WKST
* FREQ=MONTHLY
* BYMONTHDAY
* BYDAY
* BYSETPOS
* FREQ=YEARLY
* BYMONTH
* BYMONTHDAY (only if BYMONTH is also set)
* BYDAY (only if BYMONTH is also set)
Anything beyond this is 'undefined', which means that it may get ignored, or
you may get unexpected results. The effect is that in some applications the
specified recurrence may look incorrect, or is missing.
The recurrence iterator also does not yet support THISANDFUTURE.