75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
|
|
---
|
||
|
|
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.
|