152 lines
4.0 KiB
Markdown
152 lines
4.0 KiB
Markdown
---
|
||
name: mailbox_calendar
|
||
description: Liest, erstellt und verwaltet Termine und Aufgaben aus dem mailbox.org-Kalender via khal (Termine) und todoman (Aufgaben). Immer verwenden wenn der Nutzer nach Terminen, Kalender, Aufgaben, Tasks oder To-Dos fragt.
|
||
requires:
|
||
bins:
|
||
- khal
|
||
- vdirsyncer
|
||
user-invocable: true
|
||
---
|
||
|
||
# mailbox.org Kalender & Aufgaben
|
||
|
||
Dieser Skill gibt dir Zugriff auf den mailbox.org-Kalender und die Aufgabenliste von hans@dumbass über die lokal synchronisierten vdirsyncer-Verzeichnisse.
|
||
|
||
## Wichtige Pfade
|
||
|
||
- Kalender-vdir: `/home/hans/.local/share/vdirsyncer/calendars/Y2FsOi8vMC8zMg`
|
||
- Task-vdir: `/home/hans/.local/share/vdirsyncer/tasks/MzU`
|
||
- khal-Binary: `/usr/bin/khal`
|
||
- todo-Binary: `/home/hans/bin/todo`
|
||
- vdirsyncer-Binary: `/usr/bin/vdirsyncer`
|
||
|
||
## Pflichtregeln
|
||
|
||
1. **Vor jeder Lese-Operation** immer zuerst `vdirsyncer sync` ausführen, damit die Daten aktuell sind.
|
||
2. **Nach jeder Schreib-Operation** (neuer Termin, neue Aufgabe, Abschluss) immer `vdirsyncer sync` ausführen, damit die Änderung zu mailbox.org hochgeladen wird.
|
||
3. Niemals Termine oder Aufgaben erfinden. Wenn keine Daten vorhanden, klar sagen: "Keine Termine/Aufgaben gefunden."
|
||
4. Bei Fehlern den genauen Fehlertext an den Nutzer weitergeben.
|
||
|
||
## Kalender-Operationen
|
||
|
||
### Termine anzeigen – heute
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: khal list today
|
||
```
|
||
|
||
### Termine anzeigen – nächste N Tage
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: khal list today Nd
|
||
```
|
||
Beispiel für 7 Tage: `khal list today 7d`
|
||
|
||
### Termine anzeigen – bestimmtes Datum
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: khal list YYYY-MM-DD
|
||
```
|
||
|
||
### Nächste Woche
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: khal list monday 7d
|
||
```
|
||
|
||
### Neuen Termin erstellen
|
||
```
|
||
exec: khal new YYYY-MM-DD HH:MM HH:MM "Titel des Termins"
|
||
exec: vdirsyncer sync
|
||
```
|
||
Beispiel: `khal new 2026-06-01 14:00 15:00 "Zahnarzt"`
|
||
Ganztägiger Termin: `khal new 2026-06-01 "Geburtstag Oma"`
|
||
|
||
### Interaktiver Kalender (nur wenn Nutzer explizit fragt)
|
||
```
|
||
exec: ikhal
|
||
```
|
||
|
||
## Aufgaben-Operationen
|
||
|
||
### Alle offenen Aufgaben anzeigen
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: /home/hans/bin/todo list
|
||
```
|
||
|
||
### Aufgaben mit Fälligkeitsdatum anzeigen
|
||
```
|
||
exec: vdirsyncer sync
|
||
exec: /home/hans/bin/todo list --due
|
||
```
|
||
|
||
### Neue Aufgabe erstellen (mit Fälligkeitsdatum)
|
||
```
|
||
exec: /home/hans/bin/todo new "Titel der Aufgabe" --due YYYY-MM-DD
|
||
exec: vdirsyncer sync
|
||
```
|
||
Beispiel: `/home/hans/bin/todo new "Steuererklärung einreichen" --due 2026-05-31`
|
||
|
||
### Neue Aufgabe erstellen (ohne Datum)
|
||
```
|
||
exec: /home/hans/bin/todo new "Titel der Aufgabe"
|
||
exec: vdirsyncer sync
|
||
```
|
||
|
||
### Aufgabe als erledigt markieren
|
||
Zuerst ID der Aufgabe ermitteln:
|
||
```
|
||
exec: /home/hans/bin/todo list
|
||
```
|
||
Dann mit der angezeigten ID:
|
||
```
|
||
exec: /home/hans/bin/todo done <ID>
|
||
exec: vdirsyncer sync
|
||
```
|
||
|
||
### Aufgabe löschen
|
||
```
|
||
exec: /home/hans/bin/todo delete <ID>
|
||
exec: vdirsyncer sync
|
||
```
|
||
|
||
## Ausgabe-Format
|
||
|
||
- Termine immer mit Datum, Uhrzeit und Titel ausgeben.
|
||
- Aufgaben mit ID, Titel und Fälligkeitsdatum (falls vorhanden) ausgeben.
|
||
- Wenn `khal list` leer zurückkommt, sagen: "Keine Termine in diesem Zeitraum."
|
||
- Wenn `/home/hans/bin/todo list` leer zurückkommt, sagen: "Keine offenen Aufgaben."
|
||
|
||
## Fehlerbehandlung
|
||
|
||
- Wenn `vdirsyncer sync` mit einem Fehler endet: den Fehler anzeigen, nicht weitermachen.
|
||
- Wenn khal oder todo nicht gefunden: prüfen ob die Binaries existieren:
|
||
```
|
||
exec: which khal
|
||
exec: ls /home/hans/bin/todo
|
||
```
|
||
- Wenn khal "critical: ..." meldet: Konfigurationsfehler, Nutzer auf `~/.config/khal/config` hinweisen.
|
||
|
||
## Beispiel-Abläufe
|
||
|
||
**"Was habe ich diese Woche?"**
|
||
1. `vdirsyncer sync`
|
||
2. `khal list today 7d`
|
||
3. Ausgabe strukturiert zurückgeben.
|
||
|
||
**"Erstelle einen Termin: Arzt am 15. Mai um 9 Uhr"**
|
||
1. `khal new 2026-05-15 09:00 10:00 "Arzt"`
|
||
2. `vdirsyncer sync`
|
||
3. Bestätigung ausgeben.
|
||
|
||
**"Welche Aufgaben sind fällig?"**
|
||
1. `vdirsyncer sync`
|
||
2. `/home/hans/bin/todo list --due`
|
||
3. Ausgabe mit IDs und Daten zurückgeben.
|
||
|
||
**"Markiere Aufgabe 3 als erledigt"**
|
||
1. `/home/hans/bin/todo done 3`
|
||
2. `vdirsyncer sync`
|
||
3. Bestätigung ausgeben.
|