feat(calendar): creating an event — screen one and More #264

Merged
nalum merged 2 commits from feat/calendar-create into main 2026-08-26 18:38:19 +00:00
Owner

Implements #194 on both surfaces.

  • Screen one asks four things: the title focused in the edit treatment under WHAT'S HAPPENING, a Kind row defaulting to Just-an-event (each kind carrying its one-line consequence; Birthday seeds all-day + yearly, never locking), the When picker (chips → month grid → All day toggle → Starts/Ends 15-minute lists), a Runs row present only when the event covers more than one day, and Who's going. Everything else — note, Where, Remind, Repeats (with its No chip), and the readback naming the rule, the people and the first date — lives behind More, beside Add event so the primary stays reachable from screen one.
  • No Cancel button (the sheet dismisses like every sheet), no hand-typed dates or times anywhere, and the shipped nine-question form (plus its (optional) labels) is gone on both surfaces, its edit mode with it — the event sheet is the editor.
  • The uid is client-minted (UUIDv7, the queue's existing mint) so an offline replay converges on ALREADY_EXISTS; the device zone is stamped at enqueue, never at flush.
  • Verdict: spans are picked through an always-present Last day row reading Same day until one exists — §4 keeps Runs span-only but leaves the span's door unspecified, and a row whose value names its emptiness is the row grammar's own shape. Form-fragment sweep on the new sheets: no raw inputs outside FieldRow, no number spinners, no (optional), the one Save is the create's own Add event.

Stacked on #263. Design: calendar handoff §4, calendar-demo.dc.html.

🤖 Generated with Claude Code

Implements #194 on both surfaces. - **Screen one asks four things**: the title focused in the edit treatment under `WHAT'S HAPPENING`, a Kind row defaulting to Just-an-event (each kind carrying its one-line consequence; Birthday seeds all-day + yearly, never locking), the When picker (chips → month grid → All day toggle → Starts/Ends 15-minute lists), a Runs row present only when the event covers more than one day, and Who's going. Everything else — note, Where, Remind, Repeats (with its No chip), and the readback naming the rule, the people and the first date — lives behind **More**, beside `Add event` so the primary stays reachable from screen one. - **No Cancel button** (the sheet dismisses like every sheet), **no hand-typed dates or times** anywhere, and the shipped nine-question form (plus its `(optional)` labels) is gone on both surfaces, its edit mode with it — the event sheet is the editor. - The uid is client-minted (UUIDv7, the queue's existing mint) so an offline replay converges on ALREADY_EXISTS; the device zone is stamped at enqueue, never at flush. - **Verdict**: spans are picked through an always-present `Last day` row reading `Same day` until one exists — §4 keeps Runs span-only but leaves the span's door unspecified, and a row whose value names its emptiness is the row grammar's own shape. Form-fragment sweep on the new sheets: no raw inputs outside FieldRow, no number spinners, no `(optional)`, the one Save is the create's own `Add event`. Stacked on #263. Design: calendar handoff §4, calendar-demo.dc.html. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The jobs grammar applied to events (#194): screen one asks what, what
kind, when and who — the title focused in the edit treatment under
WHAT'S HAPPENING, a Kind row defaulting to Just-an-event so most events
never open it, the When picker (chips, the grid, All day, Starts/Ends),
a Runs row present only when the event covers more than one day, and
Who's going naming two and counting past that. Everything the record
can live without sits behind More — the description with no label and
no box, Where, Remind, Repeats, and a readback naming the rule, the
people and the first date. The footer is More beside Add event: screen
two is optional, so the primary is reachable from screen one. No Cancel
button (the sheet dismisses like every sheet) and no hand-typed dates
or times anywhere in the flow.

The uid is minted client-side (UUIDv7) so an offline replay converges
on ALREADY_EXISTS, and the device zone rides along stamped at enqueue —
an unknown zone is InvalidArgument at flush, which is too late to ask.

Design: calendar handoff §4, calendar-demo.dc.html.
feat(calendar): creating an event — screen one and More, compose twin
Some checks failed
check / commits (pull_request) Successful in 24s
check / go (pull_request) Successful in 2m56s
check / report (pull_request) Successful in 3s
check / web (pull_request) Failing after 4m2s
android / build (pull_request) Failing after 4m59s
android / report (pull_request) Successful in 4s
73415525e1
The Android half of #194: EventCreateSheet replaces the shipped
nine-question form with the two-screen grammar — the focused title
under WHAT'S HAPPENING, Kind, When, the Last-day row naming Same day
until a span exists, Runs only on a span, Who's going; More holds the
note, Where, Remind, Repeats (with the No chip) and the readback.
More beside Add event, no Cancel, no typed dates. The old NewEventSheet
and its edit mode go — the event sheet is the editor now — and the uid
is minted client-side with the zone stamped at enqueue, as before.

Design: calendar handoff §4, calendar-demo.dc.html.

Test report

Suite Tests Result Skipped
Unit 1440 ✅ pass 1
Integration 133 ✅ pass —

Coverage: 27.0%

Updated by the check workflow · commit 6ce52e222d

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1440 | ✅ pass | 1 | | Integration | 133 | ✅ pass | — | **Coverage:** 27.0% <sub>Updated by the check workflow · commit 6ce52e222dd85ce6377ff266d8fdcc97da570544</sub>

Android test report

Suite Tests Result Skipped
Unit (debug) 193 ✅ pass 0

Coverage: 8.9% of lines

Updated by the android workflow · commit 6ce52e222d

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 193 | ✅ pass | 0 | **Coverage:** 8.9% of lines <sub>Updated by the android workflow · commit 6ce52e222dd85ce6377ff266d8fdcc97da570544</sub>
nalum force-pushed feat/calendar-create from 73415525e1
Some checks failed
check / commits (pull_request) Successful in 24s
check / go (pull_request) Successful in 2m56s
check / report (pull_request) Successful in 3s
check / web (pull_request) Failing after 4m2s
android / build (pull_request) Failing after 4m59s
android / report (pull_request) Successful in 4s
to 4cc799ab68
Some checks failed
check / commits (pull_request) Successful in 16s
check / go (pull_request) Successful in 2m55s
check / web (pull_request) Failing after 4m8s
android / build (pull_request) Successful in 7m8s
check / report (pull_request) Successful in 13s
android / report (pull_request) Successful in 10s
2026-08-26 03:45:50 +00:00
Compare
nalum force-pushed feat/calendar-create from 4cc799ab68
Some checks failed
check / commits (pull_request) Successful in 16s
check / go (pull_request) Successful in 2m55s
check / web (pull_request) Failing after 4m8s
android / build (pull_request) Successful in 7m8s
check / report (pull_request) Successful in 13s
android / report (pull_request) Successful in 10s
to d113279c55
Some checks failed
android / build (pull_request) Has been cancelled
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
2026-08-26 04:32:46 +00:00
Compare
nalum force-pushed feat/calendar-create from d113279c55
Some checks failed
android / build (pull_request) Has been cancelled
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
to bb8244d818
All checks were successful
check / commits (pull_request) Successful in 20s
check / go (pull_request) Successful in 2m50s
android / build (pull_request) Successful in 7m10s
check / web (pull_request) Successful in 5m0s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 4s
2026-08-26 04:56:49 +00:00
Compare
nalum force-pushed feat/calendar-create from bb8244d818
All checks were successful
check / commits (pull_request) Successful in 20s
check / go (pull_request) Successful in 2m50s
android / build (pull_request) Successful in 7m10s
check / web (pull_request) Successful in 5m0s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 4s
to 80bc8390db
Some checks failed
check / commits (pull_request) Successful in 30s
check / go (pull_request) Successful in 2m55s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
2026-08-26 05:41:12 +00:00
Compare
nalum force-pushed feat/calendar-create from 80bc8390db
Some checks failed
check / commits (pull_request) Successful in 30s
check / go (pull_request) Successful in 2m55s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
to a916c42067
All checks were successful
check / commits (pull_request) Successful in 12s
check / go (pull_request) Successful in 3m8s
android / build (pull_request) Successful in 6m56s
check / web (pull_request) Successful in 4m37s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 3s
2026-08-26 06:16:45 +00:00
Compare
nalum force-pushed feat/calendar-create from a916c42067
All checks were successful
check / commits (pull_request) Successful in 12s
check / go (pull_request) Successful in 3m8s
android / build (pull_request) Successful in 6m56s
check / web (pull_request) Successful in 4m37s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 3s
to 6ce52e222d
Some checks failed
check / commits (pull_request) Successful in 15s
check / go (pull_request) Successful in 2m54s
android / build (pull_request) Successful in 7m27s
check / web (pull_request) Successful in 5m27s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 5s
android / build (push) Has been cancelled
android / report (push) Has been cancelled
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
2026-08-26 07:03:19 +00:00
Compare
nalum changed target branch from feat/calendar-event-editor to main 2026-08-26 18:38:15 +00:00
nalum merged commit 6ce52e222d into main 2026-08-26 18:38:19 +00:00
nalum deleted branch feat/calendar-create 2026-08-26 18:38:20 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!264
No description provided.