calendar: use todoman for VTODO list/complete/delete/check

Replaces custom .ics parsing with todoman CLI (--porcelain for JSON).
todo add still uses icalendar directly (needs ICS creation + email).
Updates MIGRATION.md with todoman install/config instructions.
This commit is contained in:
Yanxin Lu
2026-03-22 15:00:20 -07:00
parent 1750a0d921
commit 383b33cc30
3 changed files with 171 additions and 196 deletions

View File

@@ -1,7 +1,7 @@
---
name: calendar
description: "Calendar invites and VTODO task management via CalDAV. Send/reply to invites, create/list/complete/delete todos. Syncs to Migadu CalDAV via vdirsyncer."
metadata: {"clawdbot":{"emoji":"📅","requires":{"bins":["himalaya","vdirsyncer"],"skills":["himalaya"]}}}
metadata: {"clawdbot":{"emoji":"📅","requires":{"bins":["himalaya","vdirsyncer","todo"],"skills":["himalaya"]}}}
---
# Calendar
@@ -16,6 +16,7 @@ See `TESTING.md` for dry-run and live test steps, verification checklists, and t
- `himalaya` configured and working (see the `himalaya` skill)
- `vdirsyncer` configured and syncing to `~/.openclaw/workspace/calendars/`
- `todoman` (`todo`) for VTODO management (list, complete, delete)
- `khal` for reading calendar (optional but recommended)
- Runs via `uv run` (dependencies managed in `pyproject.toml`)
@@ -245,11 +246,9 @@ Same as `todo list` but only NEEDS-ACTION items. Exits silently when no pending
6. Runs `vdirsyncer sync` to push changes to Migadu CalDAV
**Managing todos:**
1. Creates a VTODO ICS file with `STATUS:NEEDS-ACTION`, `PRIORITY`, `DUE`, `VALARM`
2. Saves to `~/.openclaw/workspace/calendars/tasks/`
3. Emails the VTODO to `mail@luyx.org` as a delivery copy
4. Runs `vdirsyncer sync` to push to Migadu CalDAV
5. `todo check` reads local files for the daily cron digest
1. `todo add`: Creates a VTODO ICS file (via `icalendar` library), saves to `calendars/tasks/`, emails to owner, syncs
2. `todo list/complete/delete/check`: Delegates to `todoman` CLI for robust RFC 5545 VTODO parsing
3. Runs `vdirsyncer sync` after mutations to push changes to Migadu CalDAV
**CalDAV sync:**
- Events and tasks sync to Migadu and appear on all connected devices (DAVx5, etc.)