Einführung
- Dies ist der erste Teil einer Serie darüber, Daten und Technik selbst zu besitzen, und erklärt, wie man eine selbst gehostete Kalenderlösung integriert.
- Häufige Reisen machten die Terminplanung komplex, und um die Unannehmlichkeiten bestehender Kalendersysteme zu lösen, wurde eine eigene Lösung aufgebaut.
Anforderungen
- Termine werden im Arbeitskalender als Blocker angezeigt.
- Die Ehefrau kann den Kalender abonnieren.
- Ereignisse müssen nur einmal eingegeben werden.
- Bearbeitung ist auf mehreren Geräten möglich.
- Die Daten können vollständig kontrolliert werden.
- Das Problem lässt sich nicht dadurch lösen, dass der Arbeitskalender mit der Ehefrau geteilt wird.
Frühere Lösung
- Bestehende Lösungen zur Kalenderfreigabe erforderten eine gemeinsame Plattform oder boten nur eingeschränkte Funktionen.
- Zunächst wurde mit YAML-Dateien gearbeitet, um Kalenderereignisse zu schreiben und sie zur Freigabe in ICS-Dateien umzuwandeln, doch die Wartung wurde schwierig.
Architektur
- Mit einem CalDAV-Server wurde eine Lösung aufgebaut, mit der sich Kalender auf mehreren Geräten verwalten lassen.
- Sie verbindet sich mit verschiedenen Datenquellen, aktualisiert Ereignisse automatisch und stellt sie als ICS-Dateien bereit.
Baïkal-Einrichtung
- Mit Baïkal wurde ein CalDAV-Server eingerichtet und per Docker Compose einfach bereitgestellt.
- Über einen nginx-Reverse-Proxy wurde der Zugriff über das Web konfiguriert.
Einrichtung eines Systems zur Ereignisklassifizierung
- Die
CATEGORIES-Eigenschaft von iCalendar wurde genutzt, um Ereignisse zu klassifizieren, und mit Python-enum wurde ein Datenmodell erstellt.
- Dadurch lassen sich Ereignisse leicht suchen oder farblich unterscheiden.
Kalender kompilieren und teilen
- Ereignisse werden automatisch über IMAP, API, ICS-Dateien usw. importiert, zu Baïkal hinzugefügt, in ICS-Dateien umgewandelt und im Web geteilt.
- Über einen Cron-Job werden sie alle 15 Minuten aktualisiert.
Teilen mit dem Arbeitskalender
- Mit der Google Script Engine werden Ereignisse in den Arbeitskalender kopiert und auf Basis der
CATEGORIES-Eigenschaft farblich codiert.
Fazit
- Sechs Monate Tests haben gezeigt, dass das System gut funktioniert und bei der Verwaltung von Reiseplänen sehr hilfreich ist.
- Die Serverkosten von 100 US-Dollar pro Monat werden angesichts der Bequemlichkeit bei der Terminplanung als lohnend bewertet.
1 Kommentare
Hacker-News-Kommentare
CalDAV ist komplex und nicht intuitiv. Ich habe Radicale ausprobiert, war aber nicht zufrieden. Ich habe sogar versucht, persönlich einen CalDAV-Server zu implementieren, habe dann aber aufgegeben
Radicale ist als modularer CalDAV-Server, geschrieben in Python, empfehlenswert
publicIch nutze Mailcow (SoGO) auf meinem privaten Server und Fastmail. Die beiden Kalender synchronisieren sich nicht gut
Anfang der 2000er habe ich Mozilla Sunbird genutzt, um Kalender auf einem Win2k-Server zu hosten. CardDAV gab es damals wohl noch nicht
Ich nutze Baikal seit einigen Jahren, und es ist stabil. Verbunden habe ich es mit Thunderbird, DAVx5 und Fossify Calendar
Ich würde gern Funktionen für Fotos bauen. Ich möchte von Dropbox und Google wegkommen
Die Synchronisierung von Outlook und Google Calendar über HTTP ist nicht zuverlässig
Baikal sieht interessant aus. Früher habe ich DAViCal genutzt, aber nach Änderungen in iOS-Versionen war es nicht mehr zuverlässig
Ich versuche in letzter Zeit, aus der Cloud auszusteigen. Die Datenmigration hat zwei Wochen gedauert und funktioniert besser als erwartet
Es gibt auch eine serverlose Methode mit DecSync. Thunderbird oder Evolution werden mit Android-Apps synchronisiert