RRStack composes a prioritized stack of time‑based rules (rrule + optional continuous spans) to:
isActiveAt(t) — boolean.getSegments(from, to) — half‑open [start, end).classifyRange(from, to) — 'active' | 'blackout' | 'partial'.getEffectiveBounds().Key traits
's' mode, end times round up to avoid boundary false negatives.toJson() and new RRStack(json) round‑trip your stack; update(partial, policy) handles version and time‑unit changes with notices.If you’re new, continue with Getting started. To browse the callable surface and types, see Core API and Types.