docs(calendar): Kalender im README und Stand im Plan nachtragen

Der Kalender kam im README bislang mit keinem Wort vor -- weder in der
Phasentabelle noch als Abschnitt, obwohl er ein eigener Zugangsweg mit
eigener Anmeldung ist. Jetzt steht er neben WebDAV, wo er hingehoert:
gleiche Adresse-plus-App-Passwort-Logik, gleiche Sperre nach zehn
Fehlversuchen.

Zwei Dinge stehen dort ausdruecklich, weil sie beim Einrichten sonst
eine halbe Stunde Suche kosten:

  - Die Kalenderfarbe holt DAVx5 nur beim Erfassen der Sammlungen, nicht
    bei jedem Abgleich. Sie bleibt im Telefon alt, bis man dort einmal
    "Kalenderliste aktualisieren" antippt. Am Geraet nachgemessen.
  - Kalender verwalten kann die Kalender-App des Telefons gar nicht;
    Android ueberlaesst das der Sync-App.

Im Plan die Phasen 1 bis 3 auf erledigt, und darunter das, was ueber die
Phasen hinaus dazukam, weil es sich beim Pruefen als noetig erwies:
Umhaengen, EXDATE, getctag/calendar-color, Kalenderverwaltung vom Client
aus, die beiden Selbsttests.

Abbild veroeffentlicht als 2026.09.06 und latest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-09-06 23:14:40 +02:00
1 parent f71ab710e1
commit ac61df9796
2 files changed
+81 -5

No files matched your search

+47
View File
@@ -507,6 +507,52 @@ hunderte pro Minute.
---
## Kalender (CalDAV)
Adresse: `https://<deine-domain>/caldav/` – oder gar nichts eintippen und die
automatische Einrichtung über `/.well-known/caldav` laufen lassen, die jeder
verbreitete Client von selbst versucht.
Angemeldet wird sich wie bei WebDAV mit **Benutzername und App-Passwort**; das
Kontopasswort wird auch hier abgewiesen. Dieselbe Sperre nach zehn
Fehlanmeldungen gilt ebenfalls.
Was geht:
- **Termine** lesen und schreiben, mit Wiederholungen, Ausnahmen einzelner
Termine (`EXDATE`), Ganztagsterminen und Zeitzonen.
- **Mehrere Kalender**, jeder mit Name und Farbe. Anlegen, umbenennen,
umfärben und löschen geht in der Weboberfläche **und** vom Client aus
(`MKCALENDAR`, `MKCOL`, `PROPPATCH`, `DELETE`).
- **Termin in einen anderen Kalender umhängen**, ohne dass er dabei seine
Kennung verliert – für Clients derselbe Termin an neuer Adresse, kein neuer.
- **Farben** in beide Richtungen: die des Kalenders (`calendar-color`) und die
einzelner Termine (`COLOR` nach RFC 7986, als CSS3-Name, weil DAVx5 sie so
liest).
- **Im- und Export** ganzer Kalender als `.ics`.
Zwei Dinge, die man beim Einrichten wissen sollte:
**Die Kalenderfarbe holt DAVx5 nur beim Erfassen der Sammlungen**, nicht bei
jedem Abgleich. Ändert sich die Farbe hier, bleibt sie im Telefon so lange
alt, bis man dort einmal *Kalenderliste aktualisieren* (⟳) antippt. Das ist
kein Fehler, sondern DAVx5' Sparsamkeit – kostet aber eine halbe Stunde
Suche, wenn man es nicht weiß.
**Kalender verwalten kann die Kalender-App des Telefons nicht.** Android
überlässt das der Sync-App: Anlegen und Löschen geschieht in DAVx5 selbst,
nicht in der Samsung- oder Google-Kalender-App.
Noch nicht da: `sync-collection` (RFC 6578). Jeder Abgleich holt deshalb die
volle Terminliste statt nur der Änderungen – richtig, aber sparsamer ginge es.
Ebenso offen: Aufgaben (`VTODO`) in der Weboberfläche und das Teilen von
Kalendern mit anderen Nutzern.
Zwei Selbsttests decken den Bereich ab, einer je Zugangsweg – siehe
[`TESTING.md`](TESTING.md).
---
## Office (Collabora / OnlyOffice / Euro-Office)
Aether ist **WOPI-Host**. Das ist die Schnittstelle, über die Office-Server
@@ -850,5 +896,6 @@ kostet einen Container und eine Zeile `.env`, nicht mehr.
| 6 | Dokumente: OCR + Volltextsuche ✅, Etiketten ✅, Absender ✅, PDF-Betrachter ✅ – Inbox vertagt | 🔄 |
| 7 | Office (WOPI-Host, Collabora / OnlyOffice) – [Anleitung](#office-collabora--onlyoffice) | ✅ (im Test) |
| 8 | Härtung, 2FA, Observability, Extension-Points | 🔲 |
| — | [Kalender](#kalender-caldav): CalDAV, mehrere Kalender, Weboberfläche (Monat/Woche/Liste) – `sync-collection`, Aufgaben und Teilen offen | ✅ (im Test) |
> Manuelle Test-Checkliste für die fertigen Phasen: siehe [`TESTING.md`](TESTING.md).