rpi5/picoclaw/skills/caldav-calendar/SKILL.md
<!-- vendored via `npx skills add sundial-org/awesome-openclaw-skills@caldav-calendar` (commit b80cde2) --> --- name: caldav-calendar description: Sync and query the user's personal Nextcloud calendar via CalDAV using vdirsyncer + khal. Events cached locally as .ics under ~/.local/share/vdirsyncer/calendars/. metadata: {"openclaw":{"emoji":"📅","os":["linux"],"requires":{"bins":["vdirsyncer","khal"]}}} --- # CalDAV Calendar (vdirsyncer + khal) > **PERSONAL calendar only.** This skill is wired
npx skillsauth add nsimonfr/nic-os rpi5/picoclaw/skills/caldav-calendarInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PERSONAL calendar only. This skill is wired to the user's Nextcloud (
https://rpi5.gate-mintaka.ts.net:8085). Work/Trusk calendar access goes through thegogskill instead.
vdirsyncer syncs CalDAV calendars to local .ics files. khal reads and writes them. On the rpi5 both binaries come from home.packages and the configs (~/.config/vdirsyncer/config, ~/.config/khal/config) are Nix-managed in rpi5/picoclaw/picoclaw.nix; the Nextcloud password is read at sync time from /run/agenix/nextcloud-homepage-password via vdirsyncer's password.fetch.
Always sync before querying or after making changes:
vdirsyncer sync
khal list # Today
khal list today 7d # Next 7 days
khal list tomorrow # Tomorrow
khal list 2026-01-15 2026-01-20 # Date range
khal list -a nextcloud today # Specific calendar
khal search "meeting"
khal search "dentist" --format "{start-date} {title}"
khal new 2026-01-15 10:00 11:00 "Meeting title"
khal new 2026-01-15 "All day event"
khal new tomorrow 14:00 15:30 "Call" -a nextcloud
khal new 2026-01-15 10:00 11:00 "With notes" :: Description goes here
After creating, sync to push changes:
vdirsyncer sync
khal edit is interactive — requires a TTY. Use tmux if automating:
khal edit "search term"
khal edit -a nextcloud "search term"
khal edit --show-past "old event"
Menu options:
s → edit summaryd → edit descriptiont → edit datetime rangel → edit locationD → delete eventn → skip (save changes, next match)q → quitAfter editing, sync:
vdirsyncer sync
Use khal edit, then press D to delete.
For scripting:
khal list --format "{start-date} {start-time}-{end-time} {title}" today 7d
khal list --format "{uid} | {title} | {calendar}" today
Placeholders: {title}, {description}, {start}, {end}, {start-date}, {start-time}, {end-date}, {end-time}, {location}, {calendar}, {uid}
khal caches events in ~/.local/share/khal/khal.db. If data looks stale after syncing:
rm ~/.local/share/khal/khal.db
On this host both configs are already Nix-managed (see rpi5/picoclaw/picoclaw.nix — home.file.".config/vdirsyncer/config" and home.file.".config/khal/config"). Do not hand-edit them; changes get overwritten on the next home-manager switch. Edit the Nix module instead.
Bootstrap, once interactively:
vdirsyncer discover # asks y/N per Nextcloud calendar — accept the ones you want
vdirsyncer sync
Afterwards vdirsyncer sync and all khal … commands work non-interactively.
Useful paths:
~/.local/share/vdirsyncer/calendars/<calendar>/*.ics~/.local/share/vdirsyncer/status/~/.local/share/khal/khal.dbhttps://rpi5.gate-mintaka.ts.net:8085/remote.php/dav/databases
Query today's Immich "on this day" memories and print a summary picoclaw can relay. Use when the user asks about Immich memories, on-this-day, or a recap of past photos from today's date.
documentation
Promote items from Wiki/Inbox into curated Wiki/Pages, merging or creating as Wiki/Schema dictates
development
Audit the LLM Wiki for orphans, broken links, duplicates, and stale facts; write a report page
documentation
Drop a URL or pasted note into the LLM Wiki Inbox in AFFiNE