Migration von EGroupware auf Owncloud, Teil 3, Kalender

EGroupware bietet einen Export ins iCal-Format an. In dem Dialog muß man ein Anfangs- und Enddatum eingeben. Um auch wirklich alle Termine zu erfassen habe ich mich für den Zeitraum vom 1. Januar 1900 bis zum 31. Dezember 2100 entschieden.

Sowohl EGroupware als auch Owncloud verwenden vCalendar 2.0 als Format.

Wie auch schon bei dem Import der Adressdaten bietet sich als Vorgehen an, die den in Owncloud importierten Kalender nochmals zu exportieren und das Ergebnis mit dem ursprünglichen EGroupware-Export zu vergleichen.

Nach einem Diff mit ical_split.py zeigt sich folgendes Ergebnis:

  • Alle in Owncloud importierten Termine sind vorhanden, es fehlen keine Termine
  • Zumindest bei dem Export aus Owncloud heraus wird die Zeitzonen-Info entfernt und alle Zeiten auf UTC gesetzt. Das muß jedoch kein Nachteil sein
  • Stichproben zeigen, daß die Zeitzonen auch unter Berücksichtigung von Winter/Sommer-Zeit richtig umgerechnet werden.
  • Dadurch ergibt sich ein geringfügiger textueller Unterschied bei den DTSTART/DTEND – Feldern in der iCal-Datei.

Aus Interesse heraus habe ich mir noch angeschaut wie Owncloud die Kalender-Daten in den Datenbank-Tabellen speichert:

  • oc_clndr_calendars: Liste der Kalender aller User
  • oc_clndr_objects: Kalender-Objekte aller Kalender aller User im Ical-Format als Blob. Meta-Infos startdate, enddate, repeating, summary, uri, last modified in extra Feldern
  • interessanterweise unterscheidet sich der Ical-Export von dem Inhalt des Blobs. Der Blob beinhaltet den ursprünglichen Inhalt des Imports, mit ungeänderten Zeitzonen-Infos. Der Export enthält dagegen nur UTC-Zeiten.
  • oc_clndr_repeat: Wahrscheinlich schnelle Lookup-Tabelle für wiederkehrende Events
  • oc_oc_clndr_share_calendar und oc_clndr_share_event: Ist bei mir leer, wird wahrscheinlich benutzt beim Freigaben von Kalendern