3.7 KiB
3.7 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
# Next 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 events --date "next 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
# Next N days
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 --days N
Custom date range
# From a specific date
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
# Supported --date values: YYYY-MM-DD, today, tomorrow, week, "this week", "next week", month, "this month"
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/