[Beta Modul] OpenCalendar - Anbieteroffenes Modul zur Kalender Darstellung

Moin,

mein zweites eigenes Modul ist gleich etwas komplexer geworden:

Mit OpenCalendar lassen sich verschiedene Online-Kalender direkt in Symcon einbinden, synchronisieren und gemeinsam darstellen und Termine bearbeiten, löschen und hinzufügen direkt in der Kachel, oder der IPSView-Darstellung (bei vorhandenen Schreibrechten im Kalender-Konto).

Unterstützte Kalenderdienste

OpenCalendar unterstützt derzeit:

  • Apple iCloud über CalDAV und anwendungsspezifisches Passwort
  • Google Calendar über den zentralen Symcon-OAuth-Dienst
  • Microsoft 365 und Outlook.com über den zentralen Symcon-OAuth-Dienst
  • generische CalDAV-Server
  • einzelne oder mehrere ICS-/Webcal-Abonnements

Für Google und Microsoft werden keine eigenen Client-IDs oder Clientschlüssel benötigt. Voraussetzung ist lediglich eine aktive Symcon-Connect-Verbindung.

Kalenderkonten und Konfigurator

Jeder Anbieter wird über eine Instanz Kalender Konto eingerichtet. Nach erfolgreicher Verbindung findet der Kalender Konfigurator automatisch die verfügbaren Kalender und übernimmt beim Erstellen einer Kalender-Instanz:

  • Kalendername und technische Kalender-ID
  • Anbieter-ID und Kalenderadresse
  • Kalenderfarbe
  • Lese- und Schreibberechtigungen
  • die Verbindung zum richtigen Kalenderkonto
  • bei ICS/Webcal den voreingestellten Aktualisierungsplan

Bei mehreren Konten kann entweder für jedes Konto ein eigener Konfigurator verwendet oder ein vorhandener Konfigurator über Gateway ändern mit einem anderen Konto verbunden werden.

Termine synchronisieren und bearbeiten

Jede Kalender-Instanz kann einen eigenen Synchronisationszeitraum und Aktualisierungsplan erhalten. Unterstützt werden:

  • Abruf vergangener und zukünftiger Termine
  • manuelle oder zeitgesteuerte Synchronisation
  • Erstellen neuer Termine
  • Bearbeiten und Löschen vorhandener Termine
  • ganztägige Termine
  • Kalender- und Terminfarben
  • ETag-basierter Schutz vor dem Überschreiben zwischenzeitlicher Änderungen
  • lokaler Cache für eine zuverlässige Anzeige

Schreiboperationen stehen nur zur Verfügung, wenn der jeweilige Anbieter entsprechende Rechte meldet. ICS- und Webcal-Abonnements sind grundsätzlich schreibgeschützt.

Wiederkehrende Termine werden im gewählten Zeitraum als einzelne Vorkommen dargestellt. Das Ändern oder Löschen einzelner Serienvorkommen ist in dieser Beta bewusst noch nicht freigegeben, damit nicht versehentlich die vollständige Terminserie verändert wird.


Gemeinsame Kalenderansicht

Die Instanz Kalender Ansicht führt beliebig viele Kalender in einer gemeinsamen responsiven Darstellung zusammen. Verfügbar sind:

  • Agendaansicht
  • 3-Tage-Ansicht
  • Wochenansicht
  • Monatsansicht
  • horizontale oder vertikale Wochendarstellung
  • optionale Anzeige von Kalendername, Ort und Beschreibung
  • optionale Anzeige des fortlaufenden Tages im Jahr
  • Navigation zwischen Zeiträumen
  • gemeinsame Synchronisation aller ausgewählten Kalender
  • Erstellen, Bearbeiten und Löschen von Terminen direkt in der Ansicht

Die Darstellung passt sich sowohl großen Kacheln als auch schmalen Mobilansichten an.

IPSView-Unterstützung

Neben der nativen Symcon-Kachel kann OpenCalendar eine eigenständige WebContent-Variable für IPSView bereitstellen.

Die IPSView-Ausgabe bietet:

  • dieselben Agenda-, 3-Tage-, Wochen- und Monatsansichten
  • Touch-optimierte Bedienung
  • Terminbearbeitung innerhalb der HTML-Box
  • transparente oder gestaltete Hintergründe
  • helle und dunkle Vorgaben
  • benutzerdefinierte Farben, Schriften, Rahmen und Effekte
  • Übernahme geeigneter Standardstile aus einer vorhandenen .ipsView-Datei
  • automatische Aktualisierung nach Kalendersynchronisationen

In IPSView muss dafür eine HTML-Box mit dem Renderer Browser des Clients oder Automatisch verwendet werden.



Für die Anpassung der IPSView-Darstellung bietet die Kalenderansicht-Instanz weitreichende Einstellungsmöglichkeiten:

Zuverlässigkeit und Datenschutz

OpenCalendar enthält keine eigene Telemetrie. Kalender- und Termindaten werden grundsätzlich auf der eigenen Symcon-Installation verarbeitet und direkt mit dem jeweiligen Anbieter ausgetauscht.

Liebe Grüße
Burkhard

ICS-/Webcal-Abonnements verfügen zusätzlich über einen persistenten Cache. Temporäre Netzwerk- oder Serverprobleme ersetzen dadurch nicht die letzte gültige Feed-Version. Zugangsdaten, OAuth-Tokens und private Kalenderadressen werden nicht unbereinigt in Debugmeldungen ausgegeben.

Voraussetzungen

  • Symcon ab Version 9.0
  • für Google und Microsoft eine aktive Symcon-Connect-Verbindung
  • für Apple iCloud ein anwendungsspezifisches Passwort
  • für IPSView ein HTML-Box-Steuerelement mit Browser-Renderer

Installation

OpenCalendar steht im Symcon Module Store über den Kanal Beta zur Verfügung.

Die empfohlene Reihenfolge ist:

  1. Kalender Konto anlegen und verbinden.
  2. Verbindung testen und Konto synchronisieren.
  3. Kalender über den Kalender Konfigurator erstellen.
  4. Optional eine Kalender Ansicht für die Kachelvisualisierung oder IPSView anlegen.

Die vollständige Dokumentation befindet sich im OpenCalendar-Repository.

Beta und Rückmeldungen

OpenCalendar wird zunächst als Beta veröffentlicht. Rückmeldungen zu unterschiedlichen CalDAV-Servern, Kalenderanbietern, wiederkehrenden Terminen sowie zur Darstellung auf verschiedenen Endgeräten, Fehlern, Verbesserungswünschen sind ausdrücklich willkommen.

Fehler und Verbesserungsvorschläge können über den GitHub-Issue-Bereich gemeldet werden. Bitte keine Zugangsdaten, OAuth-Tokens oder privaten Kalenderadressen veröffentlichen.

Lizenz

OpenCalendar wird unter der PolyForm Noncommercial License 1.0.0 veröffentlicht und darf im Rahmen der dort definierten nichtkommerziellen Zwecke verwendet, verändert und weitergegeben werden. Für eine kommerzielle Nutzung ist eine gesonderte Erlaubnis erforderlich.

5 „Gefällt mir“

Ich werde sicher testen, bei mir läuft (sehr stabil) owncloud - die Zentrale für Kalender und Adressbuch von MCS-51.

Update:

Sehr g.il :smiley: , erster Versuch etwas schwierig, Doku lesen ist etwas für Feiglinge :rofl: .

Ich bin begeistert, musste noch ein wenig an Layouts/Farben schrauben, aber sofort eine sehr ansehnliches Ergebnis.

“WebContent-Darstellung” fand ich verwirrend, da das Objekt HTMLBox heißt.

Und als erster Feature Request :innocent: , mir fehlt eine Anzahl der Termine “heute”, da ich das nutze, um in IPSview Menüs farbig zu highlighten, falls es z.B. Geburtstage gibt.

2 „Gefällt mir“

Moin,

danke für das Feedback und das Testen. :slight_smile:

Das Modul erstellt den „WebContent“ für die HTML-Box in der View. Daher die Wortwahl. Werde das aber noch etwas verständlicher formulieren. :+1:

Wie stellst Du Dir das vor, dass das Modul einfach nur auswirft, wie viele Termine an einem Tag Insgesamt sind? Als Integer praktisch? oder anders?

LG
Burkhard

1 „Gefällt mir“

ja, das muss eh in einem Script verarbeitet werden, um die Hintergrundfarbe des Menüpunkts richtig zu setzen und die Anzahl (Integer) würde reichen bzw. könnte sogar auch noch weiter genutzt werden.

So wie “Anzahl Termine“ als “Anzahl Termine (heute)“.

1 „Gefällt mir“

Extrem “Last Test” führt zu

Warning: Output-Buffer exceeds Limit (1048576 bytes). Operation halted.

was allerdings daran liegt, dass die Datei meines Hauptkalender Exports (aktuell noch) ca. 7,5 MB groß ist.

Danke, schaue ich mir an.

LG
Burkhard

Endlich, warte schon sehr lange auf dieses Modul. Ich dachte schon, niemand hätte für dieses eine Verwendung - vielen Dank!
Bin schon fleißig am Testen mit Outlook 365, die Installation lief Problemlos.

  • Was mir allerdings fehlt und für mich sehr wichtig ist wäre die Anzeige der Kalenderwochen.
  • und ganztägige Termine (Jahrestage, Urlaub, Feiertage, …) werden nicht nur im aktuellen Tag, sondern auch für den nächsten Tag angezeigt.
  • und gleich noch eines: wenn ich in Outlook einen Termin erstelle erhalte ich 15min vorher keine Benachrichtigung, da dieses so eingestellt wurde. Erstelle ich aber Symcon einen Termin erhalte ich diese Benachrichtigung über Outlook und muss manuell deaktiviert werden.
1 „Gefällt mir“

Update ist da.

LG
Burkhard

1 „Gefällt mir“

Bin dran. Könnte ein Moment dauern.

LG
Burkhard

1 „Gefällt mir“

Das wird in der Wochenansicht doch bereits angezeigt. Wo willst Du es denn hin haben?
image

LG
Burkhard

Aber leider nur dort und nicht z.B. in der Monatsansicht wie in Outlook.

1 „Gefällt mir“

Lade mal bitte das nächste Update und schaue, ob er die große Datei jetzt fehlerfrei bearbeitet.

LG
Burkhard

Tja, ich hätte gewollt :smiley:

Moin,

oha, da kümmere ich mich gleich mal drum. Ich hatte bereits so etwas geahnt. Google sollte eigentlich ne Info schicken, wenn sie die Prüfung durchführen.

Sage Bescheid, sobald es wieder geht.

LG
Burkhard

Eine Variable für Termin Heute ist hilfreich für die Tile-Darstellung, aber in den Ansichten finde ich es eher störend wenn wenig Platz vorhanden ist. Ist das so gewünscht worden?
Wenn JA, dann wäre evtl. eine Option in den Einstellungen sinnvoll.

Zu den Layout Möglichkeiten gibt es sicher noch redebedarf :grinning_face:, mir fehlt eine (sehr) kompakte Listenansicht, es ist der erste Wurf und der ist schon mal super.

Gemeinsam mit d8chters Task- und Einkaufslisten Modul könnte ich mal anfangen separate Apps zu reduzieren und alles in Symcon zu machen.

lädt jetzt korrekt, ich teste mal weiter

1 „Gefällt mir“

Der zweite Punkt kann ignoriert werden, ich habe die Einstellungen nun in den einzelnen Kalenderinstanzen vorgenommen und jetzt funktioniert es.

Zum dritten Punkt habe ich evtl. den Fehler gefunden.
Wenn ich Symcon einen Termin mit Uhrzeit erstelle, wird die Uhrzeit in Outlook unter Bearbeitung minus 2 Stunden angezeigt (Beispiel: Termin von 15-16 Uhr in Symcon ist in Outlook unter Bearbeiten 13-14 Uhr).
Wenn ich in Symcon einen ganzen Tag als Termin anlegen möchte, muss ich z.B. als Start den 13.08. und als Ende den 14.08. anlegen. Danach wird in Outlook der 13.08. angezeigt und in Symcon der 13.08. und der 14.08.
Vielleicht hilft diese Info für die Fehlereingrenzung?

Bei mir funktoniert es jetzt auch mit Google. Schaut fesch aus :slight_smile:

Ich persönlich mag die HTML eher (obwohl ich kein IPSView habe), weil man die maximieren kann. Aber da kommt in bäld ja etwas.

1 „Gefällt mir“

Eventuell fehlt beim Anlegen die Zeitzone im ICAL oder sie ist falsch @Burki24 . Outlook ist da besonders “pissi.”.