Kontact 2, Akonadi und wie Android dazu passt…

Zu aller erst: dieser Blogpost ist nicht auf meinen Mist gewachsen, sondern wurde maßgeblich von diesem inspiriert. Seht es einfach als leicht eingedeutschte Version mit einer persönlichen Meinung. ;)

Ich benutzt KDE 4.6 inklusive Kontact 2. Dies hat noch viele Probleme (von denen die Entwickler wissen), aber die Thematik die ich hier beschreibe, hatte ich auch schon vorher: Akonadi tut einfach nicht das was es soll. :) Eigentlich stellt Akonadi, vereinfacht gesprochen, eine Zwischenschicht zwischen Anwendung und Informations- bzw Nachrichtenquellen (Mail, Kontakte, Kalender, Groupware, Lesezeichen, …) da. Dadurch ist es für einen Entwickler einfacher solche Quellen in sein Programm zu integrieren. Solche Abstraktionsschichten sind in KDE mittlerweile sehr verbreitet: Solid (für Hardware) und Phonon (für Ton) sind zwei Beispiele dafür.

Akonadi bindet diese Quelle über so genannte „Agents“ ein. Man konfiguriert diesen Agent, gibt seine Benutzerdaten für externe Dienste ein, feuert das Ganze ab und Kontact zeigt artig die Daten an.

Akonadi Agents

Akonadi Agents

So weit die Theorie. Für Mail funktioniert dies auch einwandfrei und die IMAP Unterstützung ist mittlerweile echt prima und vor allem schnell geworden. Danke liebe KDE PIM Entwickler.

Ich besitze ein Android Smartphone und nutze die Google Dienste wie Mail, (vorher befragte) Kontakte und Kalender  (ich weiß was ich da tue, also bitte keine Standpredigten über Datenschutz etc pp :-) ). Für diesen Fall gibt es ebenfalls zwei Akonadi Agents. Der eine versorgt Kontact mit den Daten der Kontakte, der andere vermittelt die Kalender. Leider funktionieren beide nicht bei mir. Ob das an meiner Config liegt, oder aber generell kaputt ist, kann ich nicht sagen.  Bei den Kalender tritt dazu noch ein zweites Problem auf: der Kalender-Agent (basiert auf libgcal, eine Bibliothek für die Kommunikation zwischen System und Google) unterstützt nur einen Kalender bei Google. Dieses ist den Entwicklern von libgcal bekannt. Dadurch ist es für mich, selbst wenn es funktionierte, leider unbrauchbar.

Aber im oben genannten Blog gibt es einen alternativen Ansatz – der DAV-Groupware Agent. Alternativer Ansatz ist eine schöne Beschreibung für einen hässlichen Würgaround. Bevor ihr es probiert: es ist relativ aufwändig und benötigt etwas Zeit. Nicht das es hinterher heißt, ich hätte euch nicht gewarnt. ;-) Dieser sollte auch in Versionen < Kontact 2.0 funktionieren. Um ihn nutzen zu können, öffnet man Kontact, geht auf die Kalender Ansicht und klickt mit der rechten Maustaste in das kleine Feld unten links. Dort gibt es dann den Menüpunkt „Add Kalender“.

Hinzufügen eines neuen Kalenders

Hinzufügen eines neuen Kalenders

Danach öffnet sich ein neues Fenster, welches alle verfügbaren Agents für Kalenderdaten anzeigt. Verwendet man nicht Kontact 2, so wählt man in diesem Fenster „Akonadi Ressource“. Ansonsten wählt man dort den Punkt „DAV-Groupware-Ressource“. Danach erscheint das Konfigurationsfenster dafür. Da die dort genannten Punkte alle nicht passend sind, schließt man das Fenster über „cancel“. Danach erscheint ein weiteres Fenster in den man seine Konfiguration manuell eingeben kann.

Konfiguration DAV

Konfiguration DAV

Im oberste Feld kann man den Namen des Kalenders angeben und in dem zweiten den Wert in dem synchronisiert werden soll. Anschließend klickt man auf „add“. Ein weiteres Fenster erscheint (nur zu Beruhigung: diesen Vorgang macht man nur ein einziges Mal): Die oberen Optionen bleiben wie sie sind (also CalDAV), in dem Feld dort gibt man unter „Remote URL“ die Adresse an. Um diese zu bekommen öffnet man die Website des Google Kalenders und geht folgenden Weg:  „Einstellungen“  → „Kalender-Einstellungen“ → „Kalender“ Reiter und klickt dort nun den Kalender an den man in Kontact haben möchte. Dort scrollt man ganz nach unten, bis zu dem Punkt „Kalenderadresse“. In dieser Zeile gibt es die „Kalender-ID“.

die Kalender-ID

die Kalender-ID

Diese kopiert man und wechselt zurück zum Konfigurationsmenü des Agents. Der Aufbau der Remote-URL sieht dann so aus:

https://www.google.com/calendar/dav/die_vorher_kopierte_Kalender-ID/events

In dem Feld „Username“ trägt man den vollständigen Benutzernamen für die Google Dienste ein, also beispielsweise Max.Mustermann@gmail.com, und klickt danach auf das Feld „fetch”. Nun erscheint eine Abfrage der digitalen Brieftasche, ob Kontact bzw Akondi auf Google zugreifen darf. Dies bestätigt man mit „ja“ (im Idealfall dauerhaft, da ansonsten die Abfrage bei jedem Sync wieder erscheint) und bestätigt danach den ganzen Dialog mit OK. Dieses, zugegeben, aufwändige Procedere wiederholt man nun gegebenenfalls auch für die anderen Kalender. Sind alle Kalender in der Liste enthalten, klickt man auf OK. Et voila: der bzw die Kalender erscheinen in Kontact.

Kontact mit mehreren Kalendern

Kontact mit mehreren Kalendern

Beim Erstellen eines neuen Termins kann man so nun auch komfortabel den Kalender angeben in den dieser eingetragen werden soll. Außerdem werden die Daten, wie bereits eingangs erwähnt laufend abgeglichen, also hat man sowohl in Kontact als auch auf dem Smartphone den selben Datenbestand.

Ich hoffe das sich die Situation rund um Akonadi und Google noch verbessert (scheint ein Google Summer of Code Projekt dafür zu geben) und diesen Vorgang wesentlich vereinfacht. Ich will im Idealfall nur meine Benutzerdaten eingeben, auswählen welche Kalender benutzt werden sollen und das Ganze mit OK bestätigen. Und keine endlosen Klickorgien veranstalten. (die, die mehr als zwei Kalender haben werden hinterher wissen was ich meine) ;)

Edit: Yahoo Kalender funktionieren auch. Einfach dieser englischen Anleitung folgen.

About these ads

11 Gedanken zu “Kontact 2, Akonadi und wie Android dazu passt…

  1. Wie hast du denn Kontact 2 installiert? Ich habe aufgegeben, da project-neon nicht mehr zu leben scheint, und die Wikianleitung beschreibt noch die Installation aus dem svn, obwohl da durch die Migration schon längst nichts mehr drin ist.

  2. Nun ja, viele benutzen Googles Dienste auf ihrem Android Smartphone und wollen nun einen gemeinsamen Datenbestand haben, der auf allen Endgeräten gleich ist.

  3. Danke! Funktioniert mit leichten Änderungen so auch unter KDE 4.7 mit KOrganizer 4.7.2. Der “DAV groupware resource”-Dialog hat jetzt anstelle der Radiolist, eine Combobox mit den bekannten Servern und einen extra Punkt, um die Resource selber zu konfigurieren, die man für Google auswählen muss. Damit entfällt jetzt der “Hack”, auf “Abbrechen” klicken zu müssen.

  4. Pingback: Verbesserungen an der Google Akonadi Ressource « serenity's blog

  5. Mit Kontact 4.8.2. funktioniert es auch 1A. Aber ich habe noch eine Frage.
    Kann man sich die Kalendereinträge auch in dem Kalender-Widget anzeigen lassen, dass sich auch öffnet, wenn man in der Kontrollleiste auf die Uhr klickt? Der zeigt meinen lokalen Kalender und den Geburtstagskalender an, aber die Googlekalender leider nicht.

  6. Hi,
    Super Sache :) Funktioniert prima und der Konfigurationsaufwand ist es allemal wert. Vor allem, da das akonadi Plugin ja nicht mehr weiterentwickelt wird und einem den letzten Nerv raubt;)
    Eine Frage hätte ich noch in dem Zusammenhang:
    Das Plugin kommt mit den Kontakten ganz gut klar, aber synchronisiert diese nur bei Start von Akonadi. Gibt es eine Möglichkeit auch die Google Kontakte als DAV Ressource einzubinden? Speziell welche Adresse ich dafür verwenden müsste wollte mir nirgends unter die Augen kommen. :)

    Gruß
    Heiko

  7. Moin,

    ich spiele gerade mit einer ähnlichen Problematik rum: ich möchte die Termine aus Korganizer in meine ownCloud-Instanz transferieren.

    Testweise habe ich mal den Kalender als iCal exportiert, die Datei in ownCloud bei den Files hochgeladen und dort dann geöffnet und dann importiert.
    Anschließend sehe ich in dem ownCloud-Kalender, den ich wie im Artikel beschrieben eingebunden habe, nur die Aufgaben, nicht aber die Termine.

    Nach etwas Probieren habe ich gemerkt, dass ich in ownClound die Termine erst bestätigen muss, damit sie auch im Korganizer angezeigt werden. Das wäre sehr viel Aufwand, das über das ownCloud Webfrontend alles nachzuziehen. Daher würde ich die Eigenschaft in Korganizer setzen wollen und den Import nochmal durchspielen. Aber dort finde ich nichts zum bestätigen.

    Ich frage hier, weil ich auch mal testweise mit einem Google Kalender rumprobiert habe. Dort gab es Konflikte beim Synchronisieren, weil die Termine im Google Kalender auch immer bestätigt waren (obwohl ich da nichts explizit gemacht habe). Von daher scheint es mir am bequemsten zu sein, dieses Kennzeichen in Korganizer immer schon gesetzt zu haben.

    Weiss jemand, wie ich das anstellen kann?

    Gruß
    Brack

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s