# Sync Google Kalender und Kontakte mit KDE

## Finswimmer

Hi,

ich bin auf der Suche nach einer Synchronisationsmöglichkeit für Google Kalender und Google Kontakte.

GCalDaemon funktioniert halbwegs. Den Kalender kann ich synchronisieren, die Kontakte allerdings nicht.

Im Forum bei SF habe ich eine eventuelle Lösung gefunden, aber ich komme an die Quellen nicht heran.

libgcal, was in Verwendung mit googledata genutzt wird, wird wohl auch nicht weiterentwickelt?

Bzw. ist es so, dass mit KDE 4.3.3 die Synchronisation von dem Kalender geht, aber die Kontakte auch nur unzureichend funktionieren:

- Nicht alle Informationen werden übernommen

- Die Synchronisation ist zum Teil sehr buggy, bzw. ab und zu gibt es gar keine Verbindung.

Was nutzt ihr dazu?

Danke

Tobi

----------

## forrestfunk81

Ich wollt mich demnächst auch mal um die Synchronisierung zwischen KDE und Google kümmern. Akonandi kümmert sich ja unter KDE um die ganze PIM Verwaltung und dafür gibts eine Resource namens Googledata. Habs noch nicht getestet, aber ein Ebuild gibts im Bugzilla.

[edit]Ups sorry, hab jetzt erst gesehen, dass dir googledata ja schon bekannt ist. Wer Lesen kann ist klar im Vorteil  :Wink: 

----------

## Finswimmer

*bump*

Jemand noch eine Idee?

Ich dachte an ein automatisiertes VCard Export/Import System. Aber das bekomme ich mit der GoogleAPI nicht hin. Da gehen immer nur einzelne Kontakte :/

Danke

Tobi

----------

## Blaine

 *Finswimmer wrote:*   

> *bump*
> 
> Jemand noch eine Idee?

 

Es gibt da noch folgendes Programm: GCALDaemon.

Damit lassen sich der Kalender und die Kontakte von Google synchronisieren. Das mit den Kontakten funktioniert bei mir seit einiger Zeit nicht mehr. Ich glaube aber, das liegt an einem Problem mit der Konfiguration.

Bei Google finden sich etliche Tutorials, z.B. für Gmail <-> KDE-Pim.

Ist auf jeden Fall einen Versuch Wert...

Grüße

----------

## Max Steel

 *Blaine wrote:*   

> Es gibt da noch folgendes Programm: GCALDaemon

 

Ist ihm aber leider bereits bekannt. Siehe erstes Post

 *Finswimmer wrote:*   

> GCalDaemon funktioniert halbwegs. Den Kalender kann ich synchronisieren, die Kontakte allerdings nicht.
> 
> Im Forum bei SF habe ich eine eventuelle Lösung gefunden, aber ich komme an die Quellen nicht heran. 

 

----------

## Blaine

 *Max Steel wrote:*   

> Ist ihm aber leider bereits bekannt. Siehe erstes Post.

 

Oops. Jetzt hast Du mich dabei ertappt, wie ich geantwortet habe, ohne den kompletten Thread zu kennen!

Zu Wiedergutmachung kann ich etwas mehr über meine Erfahrungen beim Synchronisieren mit Google erzählen:

Momentan nutze ich GCALDaemon zur Synchronisation der Kalender und libgcal für die Kontakte.

Das Problem mit GCALDaemon ist, dass das Programm seit Ewigkeiten nicht mehr gepflegt wird. Offenbar hat sich in der Zwischenzeit googleseits die API zum Abrufen der Kontaktdaten geändert. Wie Finswimmer (inzwischen habe ich es gelesen) schreibt, gibt es hier ein angeblich funktionierendes jar. Damit kann sich GCALDamon zwar wieder mit Google verbinden, die Kontakte werden aber trotzdem nicht geladen.

Über libgcal funktioniert die Synchronisation der Kontakte leider nur unvollständig, aber immerhin hat man Zugriff auf die Emaille-Adressen.

Des weiteren gibt es noch ein Plugin für Opensync, dass Kalenderdaten synchronisieren soll. Ich habe es aber seit Jahren nicht mehr getestet (damals hat es nicht funktioniert).

Zusammenfassend lässt sich also sagen: Es gibt gerade keine Lösung, die alle Funktionen zum Datenaustausch mit Google bietet.

Mit der nochmaligen Bitte um Vergebung für mein nachlässiges Verhalten.

Liebe Grüße

----------

## Finswimmer

Für den Thunderbird habe ich eben ein Plugin gefunden.

Dort kann man live die Kontaktdaten ändern.

Klappt super, schade, dass es das nicht für Kmail gibt. Ich will nicht auf den Thunderbird umsteigen...

Tobi

----------

## franzf

 *Finswimmer wrote:*   

> Für den Thunderbird habe ich eben ein Plugin gefunden.
> 
> Dort kann man live die Kontaktdaten ändern.
> 
> Klappt super, schade, dass es das nicht für Kmail gibt. Ich will nicht auf den Thunderbird umsteigen...
> ...

 

Kannst du mal link posten? Gibt es da auch Sourcen für?

Dann kann man ja mal schauen, wie das mit akonadi-resourcen schreiben funktioniert. (Würd mich aus Prinzip mal interessieren  :Wink: )

----------

## Finswimmer

Here we go:

https://addons.mozilla.org/de/thunderbird/addon/7307

----------

## franzf

Ich hatte jetzt nicht mehr viel Zeit.

Prinzipiell funktionieren tut das googledata-Kontakt-Plugin für mich, ich kann mich einloggen, Kontakte abrufen und neue erstellen.

Dass bestimmte Felder dabei unberücksichtigt bleiben liegt nur an gcal. Auf der Google-Developer-Seite steht, dass man die GData-Version 3.0 verwenden soll. In libgcal steht die Version 2.

Das ist wohl die Ursache dafür, dass einige Felder keine Werte haben.

Die entscheidenden Stellen:

Doku zu API:

http://code.google.com/intl/de-DE/apis/contacts/docs/3.0/developers_guide_protocol.html

gcal_contact (die struct wo die einzelnen Daten gespeichert werden):

Deklaration in inc/internal_gcal.h:187

Das Füllen der Contacts geschieht in src/atom_parser.c:394 - atom_extract_contact

Hier muss man wohl nur die einzelnen XPath-Queries anpassen und je nachdem für weitere Kontakt-Felder neue hinzufügen (vorher gcal_contact erweitern).

Ich denke hier sollte sich das Problem beheben lassen. Da ich von CUrl keine Ahnung hab und mir vor dem C-Code graut kann ich nicht sagen ob auch noch an anderer Stelle Patzer sind.

----------

## Finswimmer

Hmm.

Irgendwie hatte das Ding über Akonadi bei mir auch Stabilitätsprobleme. Ich konnte erstellte Kontakte nicht verändern und ab und zu wurde gar nichts übertragen.

Mit CUrl kann ich mich nun einloggen und alle Kontakte abfragen. Diese könnte ich jetzt in eine vCard umwandeln und dann über das Kontact-VCard-Plugin einlesen.

Aber irgendwie habe ich keine Lust, das Rad neu zu erfinden.

Mal schauen, ob ich nächstes Wochenende deine Tipps weiterverfolgen kann.

Danke

Tobi

----------

## Finswimmer

 *franzf wrote:*   

> 
> 
> Das Füllen der Contacts geschieht in src/atom_parser.c:394 - atom_extract_contact
> 
> Hier muss man wohl nur die einzelnen XPath-Queries anpassen und je nachdem für weitere Kontakt-Felder neue hinzufügen (vorher gcal_contact erweitern).

 

Soweit bin ich schon gekommen.

Aber irgendwie schaffe ich es nicht den richtigen XPath zu erzeugen.

Ich wollte es "hart" machen, sodass es für jede Telefonnummer-Art (Mobile, Work, Phone, Other) eine eigene Abfrage gibt.

Es unterscheidet sich nur bei "rel=" nach dem #:

<gd:phoneNumber rel='http://schemas.google.com/g/2005#work'

<gd:phoneNumber rel='http://schemas.google.com/g/2005#home'>

Hast Du da noch eine Idee?

Tobi

----------

## franzf

http://de.wikipedia.org/wiki/XPath#Beispiel

Das ist das was du willst:

```
//kap[@title="Nettes Kapitel"]/pa
```

Ersetze @title=... Durch @rel=[url].

Wollte da ja auch mal tiefer reinschauen, aber mir ist der C-Code zu stressig  :Very Happy: 

Und jetzt bin ich seit 5 Tagen richtig erkältet und kann mich nicht konzentrieren  :Sad: 

BTW: Die verwendung eines kompletten DOM-Tree beim hochladen neuer Kontakte empfinde ich als unnötigen Overhead.

Es ist eigentlich klar, wie das Ding ausschaut, der Aufbau ist statisch, es kommen keine unvorhersehbaren Einfügungen.

Im Prinzip kann man sich den String selber zusammensetzen, ohne die ganzen "xmlCreateNode" oder so.

Aber eigentlich war ich verführt, das ganze gleich mit C++ (resp. Qt) zu machen. Interessiert hätte mich auch eine Implementierung in Python oder Ruby  :Wink: 

Aber naja, erstmal wieder auf die Beine kommen.

----------

## Finswimmer

Geht mittlerweile alles?

(Kontakte mit mehreren Email-Adressen, Telefonnummern, Termine)

----------

