feat: edit recurring events, this-one or the whole series #74

Merged
nalum merged 1 commit from feat/recurring-event-edit into main 2026-08-14 16:56:30 +00:00
Owner

Final part of #61: recurring events become editable on both surfaces, with a this-one-or-the-series choice. Closes the event-editing half of #61.

Non-recurring events already edit in place (#71 web, #73 Android). This adds editing for a repeating occurrence: the event sheet offers a scope choice —

  • This event: SplitOccurrence splits the occurrence into a one-off child, then the form edits that child. Only that instance changes.
  • The whole series: reads the parent (events.read) and edits it; the change lands on every occurrence. The repeat rule itself stays fixed (editing recurrence is still a separate flow).

Web: EventDetail gains the scope picker; Calendar wires editOne (split) and editSeries (read).

Android: EventSheet gains the picker; MoreRepositories gains splitForEdit/eventForEdit, mapping the returned event into the row the form prefills from.

Verified: make check passes (web tsc/build, :app/:data compile, Go tests, web + Android i18n catalogs synced for the two new strings).

Part of #61 (the last piece).

🤖 Generated with Claude Code

Final part of #61: recurring events become editable on both surfaces, with a this-one-or-the-series choice. Closes the event-editing half of #61. Non-recurring events already edit in place (#71 web, #73 Android). This adds editing for a repeating occurrence: the event sheet offers a scope choice — - **This event**: `SplitOccurrence` splits the occurrence into a one-off child, then the form edits that child. Only that instance changes. - **The whole series**: reads the parent (`events.read`) and edits it; the change lands on every occurrence. The repeat rule itself stays fixed (editing recurrence is still a separate flow). Web: `EventDetail` gains the scope picker; `Calendar` wires `editOne` (split) and `editSeries` (read). Android: `EventSheet` gains the picker; `MoreRepositories` gains `splitForEdit`/`eventForEdit`, mapping the returned event into the row the form prefills from. Verified: `make check` passes (web tsc/build, `:app`/`:data` compile, Go tests, web + Android i18n catalogs synced for the two new strings). Part of #61 (the last piece). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: edit recurring events, this-one or the whole series
All checks were successful
check / commits (pull_request) Successful in 6s
check / go (pull_request) Successful in 3m0s
check / report (pull_request) Successful in 3s
check / web (pull_request) Successful in 3m43s
3817392a99
Non-recurring events already edit in place; recurring ones offered no
edit. Add a scope choice on the event sheet for a repeating occurrence:
'This event' splits the occurrence off (SplitOccurrence) and edits that
one child; 'The whole series' reads the parent and edits it, changing
every occurrence (the repeat rule itself stays fixed — that is still a
separate flow). Both surfaces. Closes the event-editing half of #61.

Test report

Suite Tests Result Skipped
Unit 1330 ✅ pass 1
Integration 83 ✅ pass —

Coverage: 27.7%

Updated by the check workflow · commit 710402a795

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1330 | ✅ pass | 1 | | Integration | 83 | ✅ pass | — | **Coverage:** 27.7% <sub>Updated by the check workflow · commit 710402a795de277acb19a83208105dd69aca5503</sub>
nalum force-pushed feat/recurring-event-edit from 3817392a99
All checks were successful
check / commits (pull_request) Successful in 6s
check / go (pull_request) Successful in 3m0s
check / report (pull_request) Successful in 3s
check / web (pull_request) Successful in 3m43s
to 710402a795
All checks were successful
check / commits (pull_request) Successful in 6s
check / go (pull_request) Successful in 3m8s
check / web (pull_request) Successful in 2m18s
android / build (pull_request) Successful in 7m45s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 5s
check / commits (push) Successful in 5s
check / web (push) Successful in 2m8s
check / go (push) Successful in 2m42s
check / report (push) Has been skipped
android / build (push) Successful in 7m57s
android / report (push) Has been skipped
tag / tag (push) Successful in 7m2s
release / docs (push) Successful in 2m26s
release / binaries (push) Successful in 2m30s
release / android (push) Successful in 6m2s
release / image (push) Successful in 4m19s
release / module (push) Successful in 2m0s
release / manifests (push) Successful in 4m3s
release / release (push) Successful in 17s
2026-08-14 16:03:16 +00:00
Compare

Android test report

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

Updated by the android workflow · commit 710402a795

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 31 | ✅ pass | 0 | <sub>Updated by the android workflow · commit 710402a795de277acb19a83208105dd69aca5503</sub>
nalum changed target branch from feat/android-event-edit to main 2026-08-14 16:56:24 +00:00
nalum merged commit 710402a795 into main 2026-08-14 16:56:30 +00:00
nalum deleted branch feat/recurring-event-edit 2026-08-14 16:56:30 +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!74
No description provided.