Skip to content

Commit

Permalink
Docs: update schedule docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jorroll committed Jul 19, 2023
1 parent 1fdca90 commit 3f12597
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions docs/2. Usage/4. Schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

`Schedule` objects allow iterating an occurrence schedule made up of RRULE, EXRULE, RDATE, and EXDATE components. Each `Schedule` object is intended to contain all the recurrence information to iterate through a single event, while following an API inspired by the ICAL spec. As such, duplicate occurrences are filtered out. As with other rSchedule objects, `Schedule` is immutable.

For those who aren't familiar with the ICal spec, you'll need to read the ["Recurrence Component Properties" section](https://datatracker.ietf.org/doc/html/rfc5545#section-3.8.5) to understand how `Schedule` `rrule`, `rdate`, `exrule`, and `exdate` properties work. The `Schedule` class is almost identical to the [`VEvent` class](../4.%20Serialization/3.%20ICAL.md), except that
1. `Schedules` don't require a specific `start` time (instead the start time is whenever the first occurrence happens to be).
2. `rrules` and `exrules` don't need to all start at the same time.
3. `rrules` and `rdates` can have different durations. Note though, `Schedule` otherwise follows the iCal spec in regards to durations meaning `exrules` and `exdates` ignore durations.

When constructing a `Schedule`, you will likely be providing recurrence rules in the form of either a `Rule` instance or an option's object for constructing a `Rule` instance. See the [`Rule` docs](./2.%20Rule.md) for more information about the various `Rule` options.

Example usage:
Expand Down

0 comments on commit 3f12597

Please sign in to comment.