events: iCalendar import + occurrence-exact round-trip + 19 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 38s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 38s
ical.sx parses VEVENT/VCALENDAR text back into events (ev/ical-lines->event, ev/parse-vcalendar): DTSTART/DURATION/RRULE (ordinal BYDAY, BYMONTHDAY, UNTIL/ COUNT/INTERVAL) + EXDATE/RDATE. Round-trip is occurrence-exact — export->import expands to the identical occurrence set. Completes bidirectional interop. 360/360 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/events/conformance.sh` → **341/341** (Phases 1-4 + 12 ext: …conflict-checked booking, iCalendar export, whole-series booking)
|
||||
`bash lib/events/conformance.sh` → **360/360** (Phases 1-4 + 13 ext: …iCalendar export+import round-trip, whole-series booking)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -88,6 +88,13 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-07 — iCalendar import / round-trip (extension). `ical.sx` now parses
|
||||
VEVENT/VCALENDAR text back into events (`ev/ical-lines->event`,
|
||||
`ev/parse-vcalendar`): DTSTART/DURATION/RRULE (incl. ordinal BYDAY, BYMONTHDAY,
|
||||
UNTIL/COUNT/INTERVAL) and EXDATE/RDATE. Round-trip is occurrence-exact —
|
||||
export→import expands to the identical occurrence set (tested across one-off /
|
||||
daily-count / weekly+exdate+rdate / monthly-ordinal / bymonthday). Completes
|
||||
bidirectional interop. +19 tests, 360/360 green.
|
||||
- 2026-06-07 — Whole-series booking (extension). `ev/book-series!` /
|
||||
`ev/cancel-series!` apply a booking/cancel to every occurrence of one event
|
||||
in a window (e.g. RSVP the whole weekly class), returning per-occurrence
|
||||
|
||||
Reference in New Issue
Block a user