diff options
Diffstat (limited to 'docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md')
| -rw-r--r-- | docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md index 951b338..d6b199e 100644 --- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md +++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md @@ -10777,3 +10777,39 @@ with the user on 2026-09-18 and were not open questions: 3. A candidate matches on the name AND the address, and the composer inserts `Name <addr>`. 4. `FN` and every `EMAIL`; `PHOTO`, `ADR` and `TEL` are ignored entirely. + +## 206. No calendar: events cannot be viewed, added or edited + +**Observed (user, 2026-09-18, in place of the notes' khal line):** "I'd prefer +to be able to work on my calendar from inside qtmaildir. I'm talking view, add, +remove, edit events, accept/refuse invitations, send invites to events, etc." + +**Two things are already settled by the user** and are not to be re-opened in +the brainstorm: the calendar is **its own top-level window**, like +`ComposeWindow`, not a third pane in the main one; and the iCalendar work uses +**libical**, not a hand-rolled parse. + +**The dependency is present and easy, unlike notmuch.** libical 3.0.20 with +headers in `/usr/include/libical/` and a `libical.pc`, so this one IS +`pkg_check_modules`. It is the same C-handles-in-C++ shape `nmraii.h` already +solves for notmuch, and the same rule applies: RAII aliases, and no libical +pointer crossing a thread boundary. + +**The data is on disk and verified, 2026-09-18.** 312 `.ics` files across three +collections under `~/.local/share/calendars/`, the `calendars` pair's local +half. A vdir is plain files, so a write is a new file that vdirsyncer pushes on +its next run; no daemon and no protocol work, which keeps the no-network rule +intact exactly as `send_command` does for mail. + +**Why L rather than M.** This is a second application inside this one: a month +or week or agenda VIEW is real UI with no existing counterpart here, recurrence +(`RRULE`, `EXDATE`, and the expansion of an infinite series into a visible +window) is where a naive implementation dies, and timezones are `VTIMEZONE` +rather than the `QDateTime` habits the rest of the tree has. Compose-and-send +(item 123) is the scale precedent: a spec, a branch and a plan of many tasks, +not a backlog item picked up on a Tuesday. + +**Config.** A calendar path key, and which collection is the default to WRITE +to, since there are three and nothing in the files names a preference. + +**Shares the write-during-sync question with 205.** Answer it once. |
