3.B Real CalDAV transport + TZID fix + rrule recurrence #178

Closed
opened 2026-07-27 13:11:53 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-27 13:11:53 +00:00 (Migrated from github.com)

Phase 3 — Feature completeness (behind the API). Crate: nuncio-cal (+ proto + CLI).

Make calendar real: an actual CalDAV transport plus the correctness fixes called
out in the assessment (TZID handling, recurrence).

Scope / acceptance criteria

  • Real CalDAV client — HTTP(S) CalDAV sync (REPORT/PUT/etc.) replacing any
    stubbed transport; all tests mock the server with wiremock (no live network).
  • TZID fix — events with a TZID reference resolve to the correct offset;
    no silent coercion to UTC/local. Test with a fixture crossing a DST boundary.
  • Recurrence (rrule) — expand recurring events correctly (incl. UNTIL,
    COUNT, exceptions) over a queried window.
  • Proto + CLI — a Calendar service (or additions) exposing list/sync of
    events over gRPC, driven by a nuncio-cli command.
  • Offline E2E: sync → list events against a mock CalDAV server. cargo verify green.

Note: proto lives in the shared proto/nuncio/v1/nuncio.proto — coordinate to
avoid clobbering the Contacts/JMAP proto stories.

**Phase 3 — Feature completeness (behind the API).** Crate: `nuncio-cal` (+ proto + CLI). Make calendar real: an actual CalDAV transport plus the correctness fixes called out in the assessment (TZID handling, recurrence). ### Scope / acceptance criteria - [ ] **Real CalDAV client** — HTTP(S) CalDAV sync (REPORT/PUT/etc.) replacing any stubbed transport; all tests mock the server with `wiremock` (no live network). - [ ] **TZID fix** — events with a `TZID` reference resolve to the correct offset; no silent coercion to UTC/local. Test with a fixture crossing a DST boundary. - [ ] **Recurrence (`rrule`)** — expand recurring events correctly (incl. `UNTIL`, `COUNT`, exceptions) over a queried window. - [ ] **Proto + CLI** — a `Calendar` service (or additions) exposing list/sync of events over gRPC, driven by a `nuncio-cli` command. - [ ] Offline E2E: `sync → list events` against a mock CalDAV server. `cargo verify` green. Note: proto lives in the shared `proto/nuncio/v1/nuncio.proto` — coordinate to avoid clobbering the Contacts/JMAP proto stories.
KofTwentyTwo commented 2026-07-28 14:06:00 +00:00 (Migrated from github.com)

Superseded by #185/#186 (M1) in the roadmap restructuring (milestones M1–M7). The replacement story carries the full, self-contained spec for a remote implementer. See docs/ROADMAP.md, docs/STORY-WORKFLOW.md, docs/HANDOFF.md.

Superseded by #185/#186 (M1) in the roadmap restructuring (milestones M1–M7). The replacement story carries the full, self-contained spec for a remote implementer. See docs/ROADMAP.md, docs/STORY-WORKFLOW.md, docs/HANDOFF.md.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#178