RfcTimedRule
RfcTimedRule :: # (opaque)
Extracted RFC 5545 timed recurrence values, profile timed-values-v1. UTC, floating and zoned DTSTART modes are explicit. UTC starts require Z; floating/zoned starts require local labels. UNTIL must be local for floating starts and UTC for UTC/zoned starts. Native UntilBoundary handles UTC cutoffs.
Frequencies SECONDLY through YEARLY and supported native selectors share the DATE adapter's RRULE grammar. Disputed omitted YEARLY defaults remain explicit unsupported cases. BYSECOND=60 remains unsupported on the POSIX profile. RDATE/EXDATE entries are extracted values and may contain comma lists. PERIOD entries use RfcPeriod. All inclusions/exclusions must match DTSTART's form; mixed UTC/local exception matching is explicitly unsupported. Zoned values assume one property TZID mapped by the caller to the supplied immutable rules. This does not parse content lines, folded ICS, property parameters or TZIDs.
Input is limited to 65536 bytes in total, 4096 entries in each input list, and 4096 expanded values per kind. Native combined inclusion capacity also applies when PERIOD values are added. Parsing constructs native definitions without enumerating occurrences or consulting rules. Source spelling and versioned persistence are outside this profile.
schedule : id, RfcTimedRule, Window, Context -> Try(TimedSchedule(id), [IncompatibleContext, TooManyPeriods, TooManySelectors, InvalidDuration, EmptyWindow, ReversedWindow, OutOfRange, TooManyOverrides, ConflictingEnding(LocalDateTime), ..])
Explicit context for the selected mode. Floating values are bound by the application for this evaluation; no timezone is inferred. Rules remain immutable in the native cursor. Start/end selection follows RFC first-fold and before-gap policies, and all native schedule budgets remain available.
fact_count : RfcTimedRule -> U64
The wrapper retains RFC mode and policy, while native facts expose the effective selectors after adapter defaults. No original RRULE spelling.
to_inspect : RfcTimedRule -> Str
Mode : [Utc, Floating, Zoned]
Error : [TooLarge, DateTime(Str, Error), Duration(Error), Period(Error), Rule(Error), Incompatible(Str), Unsupported(Str), InvalidRule([InvalidInterval, TooManySelectors, InvalidSelector(Str), InvalidCombination(Str), OutOfRange, InvalidHour, InvalidMinute, InvalidSecond, UnsupportedLeapSecond, InvalidCount, InvalidUntil, InvalidSetPosition, UnsynchronizedStart])]