aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-29 16:28:28 +0200
committerDanilo M. <danix@danix.xyz>2026-09-29 16:28:28 +0200
commit604533b8ea0b55702b8d17cc92759eee1d2e1760 (patch)
treede2326658af3024296bb14e28a541425ba3e6ad5 /docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md
parent35b136944656c9ff9c3b064f47be08224f76c1f9 (diff)
downloadqtmaildir-calendar.tar.gz
qtmaildir-calendar.zip
docs: close item 206, the calendar windowcalendar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.md36
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.