dot_files/dot_claude/skills/calendar.md

3.2 KiB

name: calendar description: Query and manage Nextcloud calendar events via CalDAV. Use when the user asks about their calendar, schedule, events, availability, or wants to create events. Triggers on "check my calendar", "what's on my calendar", "any events", "create event", "schedule", "am I free", "calendar", "what do I have this week".

Calendar Access

All commands use bw-vault inject to securely pass Nextcloud credentials. Passwords never appear in stdout.

Base Command Pattern

bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py <command> [options]

Available Commands

List all calendars

bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py list

Show events for a time period

# Today's events
bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py today

# Tomorrow
bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py tomorrow

# This week
bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py week

# This month
bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py month

Custom date range

bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py events --date YYYY-MM-DD --days N

Filter by calendar

Add --calendar "Calendar Name" to any command. Omit to show all calendars.

JSON output

Add --json to any command for machine-readable output.

Create an event

bw-vault inject "76169a13-9830-48ee-b583-6cc9055ed03c" --as NEXTCLOUD_APP_PASSWORD -- env NEXTCLOUD_USER=admin ~/.venvs/claude/bin/python3 /Users/viktorbarzin/code/infra/.claude/calendar-query.py create \
  --title "Event Title" \
  --start "YYYY-MM-DD HH:MM" \
  --end "YYYY-MM-DD HH:MM" \
  --calendar "Personal" \
  --location "Location" \
  --description "Description"

Start time also accepts relative formats: "today 14:00", "tomorrow 10:00". For all-day events add --all-day.

Notes

  • Credentials use the Nextcloud admin account via Vaultwarden item 76169a13-9830-48ee-b583-6cc9055ed03c
  • Some subscription calendars (Google Calendar imports) may show warnings — these are harmless
  • The script is at /Users/viktorbarzin/code/infra/.claude/calendar-query.py
  • Python deps (caldav, icalendar) are in ~/.venvs/claude/