Types for iCal recurrence rules (RFC 5545 Section 3.3.10).
RecurrenceRule is the transparent record returned by
Ical.Parser for reading parsed recurrence data.
Frequency and DaySpec are also used when
building rules for generation via Ical.Generator.Rule.
When the recurrence stops. Count and Until* are mutually exclusive per
RFC 5545 Section 3.3.10.
How often the event recurs. Each variant carries its own configuration:
every — the interval between occurrences (e.g. every = 2 with Weekly
means every other week). Must be at least 1.weekStart — which day begins the week (only meaningful for Weekly).A day-of-week specifier for recurrence rules.
Create one with every, nth, or the convenience helpers
like second and last.
-- every Monday
every Time.Mon
-- the 2nd Sunday of the month
second Time.Sun
-- the last Friday
last Time.FriPositive ordinals count from the start of the period. Negative ordinals count
from the end. nth accepts -53..-1 and 1..53, matching the RFC grammar
for numeric BYDAY values.
Match the nth instance of a weekday.
Positive values count from the start, negative values count from the end, and
0 is invalid.
nth 20 Time.Mon
nth -1 Time.FriThe 2nd-to-last instance of a weekday.
The 3rd-to-last instance of a weekday.
The 4th-to-last instance of a weekday.
The 5th-to-last instance of a weekday.
A parsed recurrence rule (RRULE). This is the transparent record returned by
Ical.Parserfor reading parsed rule data. For constructing rules for generation, useIcal.Generator.Ruleand its builder functions.byDay— which days of the week (with optional ordinals for monthly/yearly).byMonthDay— which days of the month (1–31, or -31 to -1 from month end).byMonth— which months.bySetPos— pick the Nth result from the set produced by the otherby*parts within each frequency period. Positive counts from the start, negative from the end. For example,BYDAY=MO,TU,WE,TH,FRwithbySetPos = [ -1 ]means "the last weekday" of each period.byHour— which hours (0–23).byMinute— which minutes (0–59).bySecond— which seconds (0–60, 60 for leap second).byYearDay— which days of the year (1–366, or -366 to -1 from year end).byWeekNo— which ISO week numbers (1–53, or -53 to -1 from year end).