events: MONTHLY RRULE expansion (bymonthday + ordinal byday) + 13 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 44s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 44s
BYMONTHDAY (negative = from end), ordinal BYDAY ({:ord :wd}, last-weekday),
default day-of-month skipping short months. Weekly+monthly share ev-emit-occs.
37/37 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` → **24/24** (Phase 1: calendar recurrence)
|
||||
`bash lib/events/conformance.sh` → **37/37** (Phase 1: calendar recurrence)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -55,7 +55,7 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Phase 1 — Calendar + recurrence
|
||||
- [x] `calendar.sx` — event facts, RRULE expansion in a window (DAILY/WEEKLY)
|
||||
- [ ] `calendar.sx` — MONTHLY (bymonthday + nth-weekday byday)
|
||||
- [x] `calendar.sx` — MONTHLY (bymonthday + nth-weekday byday)
|
||||
- [ ] `availability.sx` — free/busy rules
|
||||
- [ ] `api.sx` + tests + scoreboard + conformance.sh
|
||||
|
||||
@@ -77,6 +77,11 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-06 — MONTHLY recurrence. `ev-days-in-month`, `ev-add-months`,
|
||||
BYMONTHDAY (incl. negative = from month end), ordinal BYDAY (`{:ord N :wd W}`,
|
||||
ord<0 = nth-from-last), default day-of-month (skips months too short, e.g.
|
||||
day-31 monthly skips Feb/Apr). Refactored weekly+monthly onto a shared
|
||||
`ev-emit-occs` per-period emitter. 37/37 green (+13).
|
||||
- 2026-06-06 — Phase 1 scaffold + calendar recurrence. `calendar.sx`: integer
|
||||
epoch-minute datetimes, Hinnant civil<->day-number conversion, DAILY/WEEKLY
|
||||
RRULE expansion in a bounded (start,end) window with INTERVAL, COUNT (window-
|
||||
|
||||
Reference in New Issue
Block a user