This commit is contained in:
2026-03-13 18:47:30 +00:00
parent 5250bca558
commit 83d6085ea5
24 changed files with 2425 additions and 1018 deletions

View File

@@ -0,0 +1,74 @@
---
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 <command> [options]
```
### Commands
| Command | Purpose | Key Options |
|---------|---------|-------------|
| `list` | List all calendars | none |
| `events` | View events | `--today`, `--date YYYY-MM-DD`, `--start/--end <ISO>`, `--search <text>` |
| `add` | Create new event | `--summary <title>`, `--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.