--- name: nextcloud-calendar description: Manage and synchronize Nextcloud calendars via CalDAV. Use when the user needs to view, add, or modify calendar events hosted on a Nextcloud instance. Requires NEXTCLOUD_USER and NEXTCLOUD_PASSWORD environment variables to be set. Use openrouter/auto for coding and logic tasks related to this skill. --- # Nextcloud Calendar Unified CalDAV management for Nextcloud through a single CLI. ## Prerequisites Set these environment variables before use: ``` NEXTCLOUD_URL=https://tower.scarif.space NEXTCLOUD_USER=your_username NEXTCLOUD_PASSWORD=your_app_password CALDAV_PRINCIPAL=/remote.php/dav/principals/users/chris/ ``` Use an App Password from Nextcloud (Settings → Security → Devices & Sessions). ## Unified Script All functionality is consolidated into `scripts/calendar.py`: ```bash python3 calendar.py [options] ``` ### Commands | Command | Purpose | Key Options | |---------|---------|-------------| | `list` | List all calendars | none | | `events` | View events | `--today`, `--date YYYY-MM-DD`, `--start/--end `, `--search ` | | `add` | Create new event | `--summary `, `--start <ISO>`, `--end <ISO>`, `--recurrence <RRULE>`, `--description` | | `update` | Modify existing | `--uid <id>` OR (`--summary` + `--date`), `--set-summary`, `--set-start`, `--set-end`, `--set-recurrence` | | `delete` | Remove event | `--uid <id>` OR (`--summary` + `--date`) | | `test` | Verify connection & config | none | ### Examples ```bash # List calendars python3 calendar.py list # Today's events python3 calendar.py events --today # Events on a specific date python3 calendar.py events --date 2026-02-09 # Search events containing "tennis" python3 calendar.py events --search tennis # Add a one-hour meeting python3 calendar.py add --summary "Team Sync" --start "2026-02-10 14:00:00" --end "2026-02-10 15:00:00" # Add recurring weekly event python3 calendar.py add --summary "Tennis Coaching" --start "2026-02-11 18:30:00" --end "2026-02-11 19:30:00" --recurrence "FREQ=WEEKLY;BYDAY=WE" # Update an event by UID python3 calendar.py update --uid abc123 --set-title "New Title" # Delete by UID python3 calendar.py delete --uid abc123 ``` Dates can be ISO format (`YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`). For date-only events, use midnight times. ## Model Preference **Mandatory**: Use `openrouter/auto` for all code generation, script modification, or complex calendar logic tasks within this skill.