Hubzilla: Kalender, der föderiert UND CalDAV kann
Beim vergangenen
Hubzilla-Workshop (#12) haben wir über die beiden parallelen Kalendersysteme bei Hubzilla gesprochen.
Jeder Kanal hat zwei Kalendersysteme an Bord, die sich unter einer einzigen Haube befinden:
Einen(!) Kanal-Kalender („Hubzilla-Kalender") und beliebig viele
CalDAV-Kalender (man kann also mehrere Kalender für verschiedene Zwecke verwalten... es gibt aber immer den Standardkalender).
Der Kanal-Kalender föderiert. Bedeutet: Events, die man dort anlegt, werden (je nach Berechtigungen) als „Kalenderpostings" an die Verbindungen verteilt. Hier können die Empfänger z.B. auch reagieren (like/dislike) oder die Teilnahme zu- bzw. absagen etc. Dieser Kalender ist aber kein CalDAV-Kalender, weshalb man ihn auch nicht mit anderen Kalenderanwendungen abonnieren kann.
Die CalDAV-Kalender hingegen können abonniert werden, also z.B. mit dem Lieblings-Kalenderprogramm (z.B. der Thunderbirdkalender oder eine entsprechende Kalenderapp auf dem Mobilgerät) synchronisieren. Man kann dann mit solchen Apps auch Termine eintragen und sie landen auch im Kalender des Kanals und in allen anderen Kalenderanwendungen, die diesen Kalender ebenfalls abonniert haben. Außerdem kann man den Kalender mit anderen Kanälen (die sich aber auf dem selben Hub wie der eigene Kanal befinden müssen) teilen und den Empfängern Lese- oder Lese- und Schreibrechte für den Kalender einräumen. Doch dieser Kalender föderiert nicht. Termine, die dort eingetragen werden, landen nicht bei den Verbindungen und nicht im Stream.
Wir meinten dann im Workshop, dass es doch praktisch wäre, wenn der Kanal-Kalender und ein CalDAV-Kalender irgendwie synchronisiert werden könnten, um die Vorteile beider Kalenderarten nutzen zu können.
Ich war so blöde und meinte, dass ich mir mal Gedanken machen würde, wie man das – am besten als Addon – realisieren könnte.
Und nun isses feddich, das calsync-Addon.
Es macht folgendes:
Immer wenn im CalDAV-Kalender eine Aktion stattfindet, also ein Event erzeugt, gelöscht, bearbeitet wird, wird der Event auch im Kanal-Kalender erzeugt, gelöscht, bearbeitet. Und umgekehrt genauso. Also wenn im Kanal-Kalender eine solche Aktion stattfindet, geschieht das auch im Standardkalender (CalDAV). Die Synchronisierung findet ausschließlich zwischen Kanal-Kalender und Standardkalender (CalDAV-Kalender) statt, selbst wenn es noch weitere zusätzlicher CalDAV-Kalender im Kanal gibt. Es ergäbe auch keinen Sinn, weitere, zusätzliche CalDAV-Kalender des Kanals ebenfalls zu synchronisieren, weil dann nämlich ALLE Kalender quasi auch gemeinsam alle Events hätten und eine Trennung nicht mehr möglich wäre. Die automatisch in den Kanal-Kalender übernommenen Termine werden in die Standard Privacy Gruppe föderiert.
Die Synchronisierung weist aus technischen Gründen eine Verzögerung von ca. einer Minute auf.
Zu finden ist das Addon in meinem Addon-Repo:
Pepes Addons.
Das Repo muss vom Hub-Admin installiert...
./util/add_addon_repo https://codeberg.org/derpepe/pepes-addons.git pepes-addons... und das Addon "calsync" in der Admin-Oberfläche aktiviert werden.
Der Kanalnutzer muss die App "calsync" in seinem Kanal installieren, damit der Mechanismus ausgeführt wird.
#hubzilla #addon #kalender