--- name: caldav description: "CRUD operations on mailbox.org CalDAV calendars. Use when: user asks to list, create, read, update or delete calendar events. NOT for: contacts (CardDAV), tasks/todos, or other CalDAV providers." homepage: https://dav.mailbox.org metadata: { "openclaw": { "emoji": "📅", "requires": { "bins": ["python3"] }, "install": [ { "id": "pip", "kind": "run", "label": "Install Python dependencies", "run": "pip install caldav python-dotenv keyring vobject pytz", }, ], }, } --- # CalDAV Skill (mailbox.org) Lesen und Verwalten von Kalenderterminen via CalDAV auf mailbox.org. ## When to Use ✅ **USE this skill when:** - "Zeig mir meine Termine" - "Was habe ich heute / diese Woche?" - "Erstelle einen Termin für morgen um 10 Uhr" - "Verschiebe meinen Termin auf Freitag" - "Lösche den Termin Arztbesuch" - "Ändere den Ort des Meetings" ## When NOT to Use ❌ **DON'T use this skill when:** - Kontakte verwalten → CardDAV verwenden - Aufgaben/Todos → separate Tasks-API - Andere CalDAV-Anbieter (Google, Apple) → andere Skills ## Setup Credentials in `~/.openclaw/.env` eintragen: ```bash MAILBOX_DAV_URL=https://dav.mailbox.org MAILBOX_DAV_USERNAME=deine@adresse.mailbox.org # Passwort besser via keyring: ~/.openclaw/skills/caldav/caldav_crud.py store-password ``` ## Commands ### Alle Termine auflisten ```bash ~/.openclaw/skills/caldav/caldav_crud.py list ``` ### Termin erstellen ```bash ~/.openclaw/skills/caldav/caldav_crud.py create \ --summary "Titel" \ --start "2026-04-25T10:00" \ --end "2026-04-25T11:00" \ --description "Optionale Beschreibung" \ --location "Wien" ``` ### Termin lesen (Details) ```bash ~/.openclaw/skills/caldav/caldav_crud.py read --uid "" ``` ### Termin aktualisieren ```bash # Titel ändern ~/.openclaw/skills/caldav/caldav_crud.py update --uid "" --summary "Neuer Titel" # Zeit verschieben ~/.openclaw/skills/caldav/caldav_crud.py update --uid "" \ --start "2026-04-26T14:00" \ --end "2026-04-26T15:00" # Ort ändern ~/.openclaw/skills/caldav/caldav_crud.py update --uid "" --location "Graz" ``` ### Termin löschen ```bash # Mit Bestätigungsabfrage ~/.openclaw/skills/caldav/caldav_crud.py delete --uid "" # Ohne Bestätigung (für Agenten-Aufrufe) ~/.openclaw/skills/caldav/caldav_crud.py delete --uid "" --force ``` ### Passwort-Verwaltung ```bash # Einmalig im System-Schlüsselbund speichern (empfohlen) ~/.openclaw/skills/caldav/caldav_crud.py store-password # Passwort aus Schlüsselbund entfernen ~/.openclaw/skills/caldav/caldav_crud.py delete-password ``` ## Workflow-Beispiele **"Zeig mir meine Termine für heute"** ```bash ~/.openclaw/skills/caldav/caldav_crud.py list # → Ausgabe filtern nach heutigem Datum ``` **"Erstelle morgen um 15 Uhr einen Termin Zahnarzt"** ```bash ~/.openclaw/skills/caldav/caldav_crud.py create \ --summary "Zahnarzt" \ --start "2026-04-24T15:00" \ --end "2026-04-24T16:00" ``` **"Verschiebe den Termin Meeting auf Freitag 10 Uhr"** ```bash # Zuerst UID aus list ermitteln, dann: ~/.openclaw/skills/caldav/caldav_crud.py update \ --uid "" \ --start "2026-04-25T10:00" \ --end "2026-04-25T11:00" ``` ## Notes - Authentifizierung: keyring (bevorzugt) → `.env` → interaktive Eingabe - App-Passwort von mailbox.org verwenden, NICHT das Haupt-Passwort - UID eines Events über `list` ermitteln - `--verbose` Flag für Debug-Ausgabe verfügbar