3.5 KiB
3.5 KiB
azos/dav
Back to azos.
Architecture
- Phone (Apple Reminders) ↔ Nextcloud CalDAV ↔ vdirsyncer ↔ local vdir, with todoman (
todo) as the CLI. Generic module:azos-core/suites/base/dav(azos.dav.*); lauretta's account infeatures/davvia home-manager's ownaccounts.calendar.accounts(same split as mail). - DAV todos are deliberately separate from org-roam project todos ("local vs dav", not "phone"). Moving a project todo to DAV = create on DAV with
(project)prefix, delete locally. Thetodo/workplateskills handle DAV whenazos-dav-syncis on PATH — no separate skill. azos-dav-sync: YubiKey presence gate (exit 75 + last-sync time if absent) → discover → metasync → sync → regenerate a read-only org view (~/.local/share/azos-dav/todos.org, added to org-agenda via~/.emacs.d/extra/azos-dav.el). Conflicts: server/phone wins.- Live since 2026-10-14 on lauretta: syncs Nextcloud lists
anerandzakobar(todoman shows them asAner/Zakobar); collections still"from a"(everything). Committed azos-coreba95691, azosb5c7d7d. - Calendar (events) sync + workplate reading today's schedule is the next step — tracked in azos/todos.
Gotchas
- todoman 4.7: completing a recurring VTODO forks a new UID and drops DTSTART + VALARM (phone stops notifying). plann 1.2 / caldav-lib "safe" mode keeps UID but drifts the next occurrence to completion time and leaves absolute alarm triggers stale. Decision: recurring items are completed on the phone; skill forbids
todo doneon them. Stretch: inspect how Apple writes a completed recurrence, maybe fix todoman upstream (issues #304, #249). - todoman has no alarm support at all — timed tasks created from the computer won't ring on the phone.
- todoman
--porcelaingives epoch seconds; all-day vs local midnight is indistinguishable (org view treats midnight as date-only). - HM vdirsyncer names pairs
calendar_<account>, a = remote;"remote wins"→"a wins". vdirsyncer discoverprompts per missing collection and aborts on closed stdin. Module pre-creates explicitly listed local collections and answers "n" (never creates lists on the server; typos fail loudly); answers "y" only for"from a". Runs every sync so new lists appear automatically.ical2orgpyignores VTODO (events only); no existing VTODO→org tool found, hence the smallorg-view.jq.- Test bed that worked: local Radicale (
nix shell nixpkgs#radicale,auth type = none) + MKCALENDAR via curl.
Future work (not scheduled — deliberately not in azos/todos)
- Emacs command to mark a DAV item done from the org agenda/view (run
todo done+azos-dav-sync); the org view is read-only by design until then. - See how Apple writes a completed recurring reminder (inspect real .ics after ticking one on the phone); if feasible, fix todoman's recurring completion upstream (#304, #249) so recurring items can be completed from the computer.
- Pin
collectionsinfeatures/davto the wanted lists instead of"from a"(currently onlyanerandzakobarexist, so no practical difference yet). - Check whether Reminders flags survive CalDAV (likely iCloud-only); priority (!/!!/!!!) is the known-working importance marker.
- Alarms: todoman can't create them, so computer-created timed tasks don't ring — only fixable with custom code or an upstream todoman feature.