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.
Importieren 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:
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
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
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. ^^
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
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]