Tine 2.0: Importieren von *.ics/iCal

Ein Kunde fragte an, wie man iCal-Daten, die aus einem anderen Programm exportiert wurden in Tine 2.0 importieren könne. Leider ist das bislang nicht über den Browser möglich, so das man die Kommandozeile verwenden muss.

Grundsätzlich ist die Handhabung reicht einfach, wenn man weiß wie. Je nach Installations-Art von Tine 2.0 (Webstack/Paketquelle) unterscheidet sich der Befehl möglicherweise etwas. Folgende Schritte wurden sowohl unter Microsoft Windows (Tine 2.0 Webstack) als auch unter Debian 7 Wheezy (Paketquelle) getestet bzw. durchgeführt.

Vorbereitung: Die IDs der Kalender auslesen

Damit das Importieren erfolgreich verläuft bzw. um angeben zu können, in welchen Kalender (persönlich/gemeinsam) importiert werden soll, ist es im ersten Schritt notwendig, die zu den Kalendern gehörenden IDs auszulesen. Das kann man relativ bequem über den Browser tun:

  • An Tine 2.0 als Administrator anmelden.
  • Zur Anwendung/Registerkarte “Admin” wechseln.
  • Zum Abschnitt “Container” wechseln.
  • Auf die Schaltfläche “Details anzeigen” unterhalb des Suchfelds auf der rechten Seite klicken.
  • Im Textfeld neben “enthält” den Eintrag “shared” entfernen oder auf das “X” klicken und auf die Schaltfläche “Suche starten” klicken.
  • Auf der rechten Seite auf das Spaltenauswahl-Symbol klicken und “ID” auswählen.

Nun bekommt man alle Container und deren IDs angezeigt.

Tine 2.0 - Container-IDsImportieren von *.ics-Dateien

Grundsätzlich sieht der Befehl zum importieren von *.ics-Dateien in Tine 2.0 so aus:

php tine20.php --method=Calendar.import --username=BENUTZERNAME --password=KENNWORT plugin=Calendar_Import_Ical importContainerId=ID Pfad/Kalender.ics

Als Benutzername und Kennwort können die Daten des Tine 2.0-Administrators eingegeben werden. Ganz gleich welcher Benutzer verwendet wird, er muss die notwendigen Berechtigungen besitzen, um Termine in den Kalender hinzufügen zu dürfen. Andernfalls bekommt man das ganz schlicht verweigert:

Imported 0 records. Import failed for 1 records.

Bemerkung: Im Test funktionierte es am besten, den Tine 2.0-Administrator bzw. die entsprechende Benutzergruppe zu verwenden und für die Dauer des Importvorgangs die Berechtigung “Hinzufügen” auf die entsprechenden Benutzerkalender zu erteilen.

Bei ID muss die richtige Nummer, die man zuvor ausgelesen hat, eingetragen werden und schlussendlich muss der Pfad zur *.ics-Datei angegeben werden.

Wurde Tine 2.0 mittels Paketquelle (Repository) installiert, so muss dem Befehl, genauer gesagt PHP mitgeteilt werden, wo sich die Tine 2.0-Dateien befinden. Entsprechend länger ist die Eingabe:

php -d include_path=.:/usr/share/tine20:/usr/share/tine20/library:/etc/tine20 /usr/share/tine20/tine20.php --method=Calendar.import --username=BENUTZERNAME --password=KENNWORT plugin=Calendar_Import_Ical importContainerId=ID Pfad/Kalender.ics

War die Ausführung erfolgreich, erhält man folgende Meldung:

Imported 1 records. Import failed for 0 records.

Duplikate erkennt das System und importiert Diese nicht:

Imported 0 records. Import failed for 0 records.
Found 1 duplicates.

Nutzt man Tine 2.0 bereits produktiv oder möchte man auf Nummer Sicher gehen, so kann man zunächst einen neuen persönlichen oder gemeinsamen Kalender anlegen, wie oben beschrieben die ID auslesen und die iCal-Daten erstmal in diesen “Test”-Kalender importieren. Später kann man dann entscheiden, ob man die Termine in den richtigen Kalender verschiebt oder erneut, dann aber in den richtigen Kalender, importiert.

Möchte man zunächst mit einem Datensatz testen, so kann man das Beispiel von Wikipedia verwenden:

Wikipedia – iCalendar

4 Kommentare

  1. Mario

    Moin,

    da ich zu den Leuten gehöre, welche immer bei einer Anleitung einen Senfdazugeber hätten, welcher bestätigt, das die Anleitung funktioniert, waage ich mich mal als Solcher.
    Mit
    pi@rpi / $ sudo php -d include_path=.:/usr/share/tine20:/usr/share/tine20/library:/etc/tine20 /usr/share/tine20/tine20.php –method=Calendar.import –username=”Admin” –password=”strenggeheim” plugin=Calendar_Import_Ical importContainerId=”eine gefundene Ziffer” /media/hdd/Tine/Kalender.ics
    Imported 327 records. Import failed for 0 records.
    konnte ich auf einem Rasperry Pi einen aus Outlook 2013 exportierten Kalender erfolgreich importieren. Auf dem Pi allerdings dauerte es gute 10min. Und mehr als ein Dreischichtsystem, ein paar Geburtstage, Feiertage und sonstige private Termine bis hin zur Erinnerung an das 2x wöchentliche Blumen giessen für die nächsten 30 Jahre war nicht im Kalender.
    Hoffentlich ist der Sync mit dem Handy dann mal schneller ^^

    LG theMario

  2. Mario

    Seht ihr, da habe ich doch fast vergessen, zu erwähnen, daß die Einträge mit “…” anzupassen sind und OHNE diese “” zu verwenden sind.

    theMario… der das Senf dazugeben noch übt. ^^

  3. Jan

    Moin Andy,
    ist es auch möglich, den Importbefehl an das Skript “tine20.php” aus PHP heraus als GET-String zu senden?
    So in der Art:

    Viele Grüße,
    Jan

  4. Jan

    Jetzt hat er mir den Code gelöscht. :/
    Also gut, ersetze ich die spitzen Klammern durch eckige:

    [form action=’tine20.php’ method=’GET’]
    [input type=’hidden’ name=’method’ value=’Calendar.import’]
    [noch mehr inputfelder usw.]
    [/form]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑