Kalender synchronisieren mit freier Software

Nachdem ich mir jetzt einen virtuellen Server gemietet habe, dachte ich, es wäre doch eine gute Idee, der Abhängigkeit von Google zu entfliehen und meinen Kalender selbst zu hosten.

DAViCal läuft inzwischen auch (mit SSL und CACert-Zertifikat, auf einem name-based virtual host, was dank client name indication auch mit SSL geht, und vom DNS abgesehen auch unabhängig von diesem seltsamen Plesk Power Panel). Auch einen iCalendar-Export meines Google-Kalenders habe ich schon erfolgreich importieren können.

Vor dem Umstieg frage ich mich jetzt allerdings noch, wie da die Synchronisation mit verschiedenen Endgeräten aussieht. Ein paar Erwägungen:

  • Meinen privaten Kalender selbst zwischen Lightning-Instanzen zu synchronisieren, ist wohl problemlos.
  • Im Gegensatz zum Google-Kalender dürfte jetzt auch erstmals die Synchronisation von Tasks funktionieren.
  • Aber wie sieht es mit der Android-Synchronisation aus? Muss man dafür tatsächlich irgendwelche Fremdapps installieren, die dann vermutlich weniger reibungslos funktionieren als die eingebaute Synchronisation mit Google?
  • Bisher konnte ich ICS-Feeds im Google-Kalender (im Web) hinzufügen. In Lightning sind die dann leider nicht automatisch aufgetaucht, aber auf dem Android-Smartphone. Gibt es eine Möglichkeit, solche “Kalender-Abos” interoperabel und standardbasiert zu synchronisieren?

Scheduling wäre ein weiterer Punkt, den ich mal ausprobieren müsste …

8 thoughts on “Kalender synchronisieren mit freier Software

  1. Hallo Jens,

    Ich bin der Autor von CalDAV-Sync für Android. Bisher unterstützt Android nativ weder CalDAV noch CardDAV (auch Android 4.0.3 nicht). Bis Version 4 enthielt Android noch nicht mal eine öffentliche Kalender API. Da ich selbst enttäuscht darüber war nachdem ich mir vor ca. 1½ Jahren mein Android Smartphone gekauft habe, habe ich mit den Apps begonnen. Ich nutze selbst auch einen DAViCal Server, daher ist dieser Server am besten von allen getestet. Meine App ist sicher noch nicht perfekt, aber ich arbeite viel daran um sie einmal perfekt zu machen. Anhand der Bewertungen und Kommentare kann man aber, denk ich, sehen, dass sie ihren Job schon ganz gut macht ;-)
    Wenn es mal ein Problem geben sollte, kann man mir gerne schreiben. Ich versuche grundsätzlich jedes Problem in kürzester Zeit zu beheben.
    Ich denke übrigens, dass es für Google nicht einfach ist CalDAV und CardDAV mit Android bereit zu stellen. Das Problem ist, dass es gefühlte eine Million Implementierungen gibt und die viele viele Bugs haben. Apple ist in der komfortablen Position, dass jeder iCal und iOS als Referenzimplementierung nutzt und seinen Server damit testet. Man kann also davon ausgehen, dass jeder Serverentwickler seinen Server Apple-kompatibel macht (d.h. noch nicht dass er dann auch CalDAV-konform ist). Google hingegen hat es da schwerer von Anfang an eine Lösung zu bringen die mit all den kaputten Servern funktioniert (ich weiß wovon ich rede). Insbesondere da die vorinstallierten System-Apps nicht einzeln aktualisiert werden können, würden dann möglicherweise viele Nutzer ein Telefon mit CalDAV-Support haben das aber trotzdem nicht mit Ihrem Server synct (das ist besonders bitter wenn es zur Kaufentscheidung beigetragen hat). Und wenn der Hersteller kein Update mehr bringt bleibt der Nutzer auch drauf sitzen …
    So, das war mein Senf dazu :-)

    viele Grüße

    Marten

  2. Hallo Marten,

    danke für die ausführliche Antwort. Dann gehe ich mal davon aus, dass CalDAV-Sync ordentlich läuft und werde das auf jeden Fall ausprobieren.

    Da Du Dich ja vermutlich ziemlich gut mit CalDAV auskennst, kannst Du vielleicht auch noch etwas zur letzten Frage sagen? Wenn ich http://dmfs.org/caldav/ richtig deute, steht Unterstützung für mehrere Calender noch aus. Heißt das, dass mehrere Kalender in einer Calendar Collection nicht unterstützt werden?

    Und wie gesagt, beim Google-Kalender ist es möglich, externe Kalender zu abonnieren, die dann auch auf das Android-Gerät gesynct werden. Bei Lightning muss ich die dann jeweils einzeln manuell hinzufügen … Ist so etwas mit CalDAV überhaupt möglich?

    Danke!

    Gruß Jens

  3. Meine App unterstützt mehrere Kalender in einer Collection (guck dir mal die Screenshots im Market an, die sind mit dem SOGo Demo-Server gemacht). So lange die Kalender in deinem Calendar-Home liegen, findet die App sie automatisch und du kannst sie einfach auswählen und sie werden alle gesynct. Bei Servern wie SOGo, Zimbra oder auch iCloud wo (von anderen Nutzern) abonnierte Kalender in deinem Calendar-Home eingeblendet werden, kannst du so auch ganz leicht abonnierte Kalender synchronisieren.

    Bei DAViCal können freigegebene Kalender von anderen Nutzern (auf dem gleichen Server), soweit ich weiß, nicht in deinem Calendar-Home eingeblendet werden. Da die Suche nach solchen Ressourcen noch nicht automatisch klappt, musst du da momentan die URL wissen und eingeben. Wenn an der eingegebenen URL ein Kalender liegt, zeigt er den zusätzlich zu denen aus deinem Kalender-Home noch mit an (du musst dann aber momentan noch einen Account pro freigegebenen Kalender auf dem Telefon erstellen, ich arbeite dran das zu verbessern).

    Wenn du Kalender von komplett anderen Servern abonnieren willst ist es sicher sinnvoller die Kalender direkt zu synchronisieren als über einen anderen Account als Proxy zu gehen. Ich bin grad nicht ganz sicher, aber ich meine irgendwo mal gelesen zu haben, dass so etwas aber mit DAViCal sogar möglich ist.
    Das dürfte allerdings nur so lange funktionieren wie der externe Kalender auch auf einem CalDAV-Server liegt. Bei Plain-ICS Dateien wird es komplizierter. Der einzige Weg diese von externen Servern in einen CalDAV-Server zu abonnieren ist vermutlich einen neuen CalDAV-Kalender zu erstellen und die ICS Datei regelmäßig dort rein zu synchronisieren. Ich kenne aber momentan kein Tool um eine ICS Datei in einen CalDAV-Kalender zu synchronisieren. Man kann die zwar in DAViCal reinschieben, ich bin aber nicht sicher ob er beim zweiten mal die Termine aktualisiert oder dupliziert. Habs noch nicht probiert…

    viele Grüße

    Marten

  4. “Wenn du Kalender von komplett anderen Servern abonnieren willst ist es sicher sinnvoller die Kalender direkt zu synchronisieren” – wie gesagt, dass mache ich dann auf dem Desktop und vergesse es auf dem Phone, weil es da ja auch ungleich frickeliger ist …

    Ich sehe auch noch nicht, dass die Calendaring-Standard dieses, ich nenne es einfach mal so, one-way scheduling, ordentlich unterstützen. Im Extremfall will ich ja einzelne Termine, die ich irgendwo im Netz finde, in meinen Kalender einfügen. Und zwar so, dass ich bei Aktualisierungen benachrichtigt werde.

  5. Hmm, das kann CalDAV so leider nicht leisten. Dazu bedarf es eben etwas Aufwand. Du musst die externen Kalender regelmäßig abfragen und im CalDAV-Kalender aktualisieren. So macht Google das bei externen ICS Feeds sicher auch.

    Wie gesagt, es kann durchaus sein, dass es reicht per cron-job die externen Kalender abzufragen und in DAViCal zu füttern. Wenn der ICS Import in DAViCal clever genug ist, wird er die Termine aktualisieren anstatt sie als Duplikate zu importieren. Jeder Termin hat ja (theoretisch) eine eindeutige Nummer (UID) mit der festgestellt werden kann ob ein Termin schon importiert wurde und nur aktualisiert werden muss, ober ob er komplett neu ist. Ich werde das bei Gelegenheit mal ausprobieren und mich wieder melden.

  6. “Der einzige Weg diese von externen Servern in einen CalDAV-Server zu abonnieren ist vermutlich einen neuen CalDAV-Kalender zu erstellen und die ICS Datei regelmäßig dort rein zu synchronisieren.”

    Ich sehe hier zwei prinzipielle Lösungsansätze:

    - Ein Skript, dass diese externen Termine regelmäßig mit einem CalDAV-Kalender synchronisiert. Ist ja in der Tat kein Problem, wenn die UID gleich bleibt.

    - Ein Skript, das für diese Aufgabe die vorgesehenen Scheduling-Mechanismen verwendet, also von dem ich mir eine Einladung zu öffentlichen Terminen schicken lasse.

    Da beispielsweise DAViCal CalDAV-Scheduling wohl eh noch nicht vollständig unterstützt, ist wohl die erste Alternative die einfachste. Das Skript kann dann ja auch zugleich eine E-Mail schicken, wenn es eine Terminänderung entdeckt hat …

  7. Hi,
    funktioniert diese App denn mit einem freigegebenen T-Online-Kalender?
    Ich habe es mal im Browser im Google-Konto versucht, da läßt sich der T-Online-Kalender zwar reinholen, zeigt aber keinerlei Termine an…
    Weiß nicht, ob das an Google oder T-Online liegt. Aber T-Online hat beim Einrichten der Freigabe ja eine URL ausgespuckt, also sollte das ja wohl geklappt haben?

  8. Hallo Jungs,
    ich habe ein Problem, meine DAViCal Kalender werden bei Google Kalender erst nach Tagen synchronisiert. Was kann ich da tun? Mit Thunderbird klappt es super, nach ein Paar Sekunden sind die Termine da, bei Google Kalender ist Tage später.
    Vielen Dank!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>