I used to store my calendars, contacts, tasks at Google and sync them from there to my android phone and thunderbird/lightning on different machines running linux or win*. For a number of reasons I decided to deGoogle my data habbits and have migrated to an ownCloud server.

Google contact has a rather easy to use way of grouping contacts, actually it's more like tagging the contacts to belong to a group. Android supports those groups out of the box. Thunderbird, with the help of an addon, syncs those contacts and automagically has a mail list for each of the groups defined in Google contacts. Ease of use and clarity for data handling, each contact has the info about which mail distribution list will apply directly as a property with itself. I like that.

OwnCloud, at least with the last few versions of it's 5er, does it more or less as well as Google does. The interface may not be that refined and handy, but the structures and functionality is there, which I appreciate a lot. 
Syncing to android requires 2 apps (cardDav-sync and calDAV-sync) costing few € each and then everything works nicely like it ever did. Fun.

Syncing to Thunderbird's addressbook needs an addon which, unfortunately, is crippled in the way it handles mail lists. Categories are synced and recognized, I can even edit them conveniently. But there is no automatic and no decent manual way to build a mail list based on the categories of the synced contacts. There is a modal window that expects me to type email addresse in order to add them to the list. Type. No filter select, or at least drag and drop. Type. 

This is the moment that I start to check Kontact again. Not the first time, KDE on arch is my main desktop for a year and it was KDE on debian before (less fun). 
Connecting Kontact to ownCloud is very easy, actually comfortable. Syncing the contacts works smooth and fast, including the contact photos. KAddressbook shows me a flat list of names but there is a context menue which allows me to add fields for display and sorting. My pet property, Categories, is not included though.

Double click on a contact entry opens a editor dialog with a field for the categories, comfortable to select from a list of all existing values, if I decide to create a new one it is synced to ownCloud minutes later. Very nice indeed.

But try to create a group and populate it and there is a time tunnel back into the computational stone ages! There is a New Group dialog which is modal and no drag & drop is possible. Select a number of contacts, New Group -> the very same dialog, no 'selection awareness' and adding the selected entries to the new group. No!
The dialog expects me to type the name, at least offering an input-aware selection as I start to type. Seriously no fun!

So:
- is there any known way to automatically sync groups according to category settings?
- or at least, any known way to populate groups via drag&drop of selected entries?
- or, at the very least, any docu, examples, helpful sites on how to get and set the relevant data, methods etc to script my own way with qdbus-qt4 ?
I can 
qdbus-qt4 org.kde.kaddressbook /kaddressbook/MainWindow_1 org.kde.KMainWindow.activateAction akonadi_contact_group_create 
but i just opens the modal editor window and thus gets me nowhere.

entGooglen

Thursday, July 18. 2013

 Googles Verwaltung meiner Kontakt habe ich letzthin immer weniger vertraut, Kontakte verschwanden, Unbekannte tauchten auf. 
Auf dem Wege "Weg von Google" war ich ja schon laenger, nur die Migration der Kontakte hielt mich ab.

Der Rahmen: 
Bislang lagen lagen 10 Kalender und einige hundert Kontakte (mit Bildern) in dutzenden Gruppen bei Google. Daran hingen  Thunderbird (mit Lightning und dem Provider for google Calendar und Google Contacts) unter lin/win, zusätzlich unter linux auch noch die KDE-Pim und unter Android 2.3 K9 und die HTC-apps für Kontakte und Kalender.

Eine bequeme Möglichkeit, die Kontakte von Google zu ownCloud zu bringen und dabei Kontakbilder und die Gruppierungen zu erhalten, habe ich nicht gefunden, das blieb wirklich Handarbeit. Hilfreich waren aber die Kontaktbilder, die der Provider for Google Contacts in's Thunderbird-Profilverzeichnis synchronisiert hatte, ~/.thunderbird/(profilID)/Photos.
OwnClouds Kontakte erlaubt den Import der Kontaktbilder nur, wenn sie unmittelbar im W'urzelverzeichnis des File-Bereiches gespeichert sind, offenbar ein bug, andere Optionen werden angeboten, funzen aber nicht.

Thunderbird synchronisiert sich die Kontakte mit dem Inverse Sogo Connector - hier gibt es aber jetzt eine funktionale Einschränkung: Gruppierungen werden, anders als es der "Provider" noch tat,  nicht mehr bei der Synchronisierung als Mailing List eingerichtet und synchronisiert. Das ist schade.

Die Kalender bindet Lightning sich problemlos über die Url ein, die OwnCloud als Caldav-Link anzeigt. 

Auf dem Androiden musste ich mir die beiden apps CalDAV-Sync und CardDAV-Sync kaufen, trotz heftiger Suche fand sich keine brauchbare Alternative. Man bekommt dann noch als kostenlose Zugabe eine kleine App Aufgaben dazu, die ganz brauchbar ist. Das HTC-Kalenderprogramm und auch der Kontaktemanager sehen die neu eingebunden Kalender und Kontakte gleich, dennoch habe ich den HTC-Kalender bei der Gelegenheit durch die viel übersichtlichere aCalendar abgelöst.

KDEs Kontact synchronisiert auch ohne Probleme mit OwnCloud, leider hat Contacts dort überhaupt keinen Begriff von den Gruppierungen.

Nach etwas Kontrolle konnte ich dann die Aufgaben, Kalender und Kontakte aus dem Google-Account alle löschen - macht nicht viel Unterschied, die NSA hat sie ohnehin laengst abgespeichert. Aber es ist ein Sandkorn - wenn es viele solche Sandkörner gibt, sieht Google etwas Rutschen...

 

 

 An sich ja kein Vorhaben, das so ausgefallen oder umfangreich klingt, dass man damit lange zubringen müsste: so wie die Termindaten - als eine Reihe von thematisch sortierten Unterkalender zu einem Google account gehalten - auf dem Android SmartPhone wie auf dem Desktop (Thunderbird/Lightning) synchronisiert und aktuell zur Verfügung stehen, so will ich das auch für die Aufgaben. Und ich hätte für Aufgaben gerne die Möglichkeit, sie hierarchisch zuzuordnen, also: sub tasks.

KOrganizer hat sub Tasks und die Oberfläche wäre nicht ganz schlecht, aber die Einbindung von Google Kalendern und deren Synchronisation war so hakelig und letztlich unzuverlässig, dass ich KOrganizer genervt nur mit einer Minifunktion betraut und ansonsten von der Liste gestrichen habe.

Bleibe ich also bei ThunderBird/Lightning, muss ich den Wunsch nach sub-tasks schon mal drangeben, lightning hat das einfach nicht zu bieten. Aber selbst dann ist kein einfacher Weg zu Synchronisation in Sicht. In Lightning hat der "Provider for Google Calendar" nur den knappen Hinweis parat, das gTasks erst in einer späteren Version unterstützt würden, derzeit gebe es Probleme. Auch einen Google Kalender via caldav anzubinden hilft nicht: Lightning akzeptiert Google Kalender nicht als Aufgabenspeicher, sondern nur in einen lokalen Kalender. 

Man findet add-ons, um lightning an exchange-server oder kolab, toodledo oder zimbra anzuhängen, aber alle angebotenen Wege scheinen auf die Installation irgendeiner Groupware-Server-Soft oder einen kostenpflichtigen account hinauszulaufen. Ich war schon auf dem Wege, mein eigene Tasklistenverwaltung und Sync zu schreiben, als ich in den Mozilla-Foren auf auf einen Thread zum Thema stiess. Und darin auf den Hinweis auf memotoo

memotoo ist auch wieder ein kommerzieller Service mit einem kostenlosen Basisangebot, 50 Tasks kriegt man gratis, danach kostet es (12€/Jahr). aber dafuer haben sie schon wirklich eine eindrucksvolle Liste von Synchronisations-Optionen. Ein französisches Angebot (was man der deutschen wie der englischen Version der Seite etwas ansieht), kann https:// wenn man es aufruft, ist in IPv6 verfügbar. Synct Adressbuch, Tasks, Notizen, Mail, Kalender, Bookmarks, sonstige Dateien - probiert habe ich erstmal nur die Tasks. Klick auf Synchronize my tasks und da sind 35 Optionen parat, klick auf Google Tasks, account info, authorisieren, Optionen zur Synchronisierungsrichtung und schon stehen die eingetragenen Aufgaben da. Klick auf Sunbird (wie gut, dass ich mir die diversen Pseudonyme dieses Programms alle merken kann...) klare Installationsanweisung, pling stehen die Aufgaben in Lightning da. Details gilt es auszutesten, der erste Eindruck gefällt.

 

KOrganizer und Google Kalender

Tuesday, March 27. 2012

Dieser Artikel ist aus meiner Sicht etwas veraltet - er schildert Probleme, die ich mit der eher vermurksten KDE - Version hatte, die mit debian kommt. Squeeze wie Wheezy schleppen einen uralten Versionstand von KDE Pim mit sich herum und damit hat man nur Kummer. Irgendwann habe ich mal Arch Linux ausprobiert und - ob es nun am ohnehin viel aktuelleren Versionstand liegt oder ob KDE unter Arch auch etwas liebevollere Behandlung geniesst - da ging plötzlich, was ich auf Debian partout nicht erreichen konnte: Google Kalender, Tasks, Adressbuch einbinden.  

 

 Klickt man auf die kleine Uhr im Systray von KDE, geht ein Kalender-Popup auf, und da hätte ich gerne meine Termine markiert. Termine lege ich in einer Reihe von thematisch getrennten Kalender in einem Google-Account ab, so kann ich per Browser, Android-Phone, Thunderbird-Lightning (bzw IceOwl) darauf zugreifen. 

Damit die Termine in dem kleinen Overlay angezeigt werden, muß ich die Kalender in KOrganizer einbinden. kurz gegoogelt und die Suchergebnisse verweisen mich auf GCalDaemon (den ich schon kenne, der auch soweit läuft, der aber ein wenig umständlich einzurichten wäre und mir eher als eine Notlösung vorkommt.

Der nächste Fund verweist mich auf das Package akonadi-kde-resource-googledata, das ich mit synaptics finde und installiere und dann zu verwenden versuche. Die Synchronisation der Kontakte mit KAdressBook klappt daraufhin, aber in KOrganizer gelingt es mir nicht. Es gibt gar keine Option, statt des Hauptkalenders einen der anderen auszuwählen.

Dann finde ich den Hinweis auf ein Projekt akonadi-google, mit dem das Syncen von mehreren Kalendern und Tasks möglich sei. Die Sourcen des Projektes muss man sich laden und selbst kompilieren, als root:

mkdir -p /usr/local/src/akonadi-google-src
cd /usr/local/src/akonadi-google-src
git clone git://anongit.kde.org/akonadi-google

apt-get install cmake build-essential kdelibs5-dev kdepimlibs5-dev libqjson-dev libphonon-dev xsltproc libboost-dev
cd akonadi-google/
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
make
make install
 
KOrganizer (neu) starten und dann kann ich meine diversen Kalender einen nach dem anderen einbinden. Einziges Manko, dass mir bislang auffiel: wiederkehrende Termine aus einem der Google-Kalender werden in KOrganizer nicht angezeigt.
Mit ein paar Tagen Laufzeit erscheint die Sache etwas wackelig: anfangs gelingt die Verbindung zu den Google-Kalendern und Terminänderungen werden ringsum synchronisiert. Aber ohne klar erkennbaren Anlass - und ohne eine entsprechende Meldung in .xsession-errors - ist die Synchronisierung nun wieder ausgestiegen. Auch ausdrückliche manuelle Synchronisierung tut es nicht - im Log steht zwar: libakonadi Akonadi::ItemSerializer::convert:     -> conversion successful
aber die geänderten Termine tauchen nicht auf.

Ähnlich verlief es mit der Synchronisation von Aufgaben. Dabei finde ich es besonders blöd, dass KOrganizer selbst gar keinen Hinweis gibt, dass etwas nicht stimmen könnte, man legt fröhlich neue Aufgaben oder termine an und bekommt sie dort auch angezeigt, KOrganizer ist scheints wirklich der Ansicht, dass die Daten bei google landen. Aber leider...

Wenn ich nun einen meiner Kalender in Manage Calendar Sources rausschmeisse und danach neu Hinzuzufügen versuche, dann sehe ich einen Hinweis auf ein Problem:
Die Auswahlliste unter "Select the Calendar you want to connect to" ist leer, ein Klick auf Refresh List schreibt mir diesen fehler in's Log: 
akonadi_googlecalendar_resource_10(1744) KGoogle::KGoogleAccessManager::nam_replyReceived: Unknown error 0 , Google replied ' "" '
Da kann (und werrde) ich noch ein wenig herumforschen, um die synchronisation zu reparieren, muss man unter Manage Calendar Sources jeden einzelnen Kalender löschen, die Authentifizierung aufhaben und wiedeer neu einrichten und danach die Kalender wieder neu anlegen.

Es gibt einen eingetragenen Bug in der thematischen Nähe, ich habe aber nichts hilfreiches darin finden können und bin auch nicht sicher, ob das, was ich sehe, wirklich das gleiche ist. Jedenfalls die dort angesprochenen erweiterten Fehler (404, 410) habe ich hier bislang nicht gesehen.

Insgesamt ist es schon ein trauriges Bild. Also, Integration und Synchronisation von verschiedenen Datenquellen ist doch das eigentliche Kernthema von PIM und der Wunsch, auf dem Smartphone Aufgabenliste und Kalendereinträge zu sehen, die ich mir auf dem Desktop eingetragen habe, ist ja nun nicht ungewöhnlich. Dass sollte ein Organizer out-of-the-Box können, und nicht nur via einer obskur zu findenen und noch nicht ganz garen lib, die man sich erstmal selbst kompilieren und dann debuggen muss.
Gefällt nicht.

So, zurück zum Anfang - wie bekomme ich meine Events jetzt in den kleinen Übersichtskalender des KDE-systray? Ein banales Shell-script lädt die Kalender über deren privat-Url herunter und benennt sie übersichtlich, damit nicht ein basic.ics den anderen überschreibt. Cronjob einrichten, der das script regelmaessig alle paar Minuten aufruft. Kontakt darf noch mal ran, ich richte für jeden Einzelkalender einen Akonadi-Kalender mit Datenquelle lokale iCal-Datei ein. FileMonitoring anhaken, readonly kann man auch anhaken, effektiv ist es das ohnehin, denn die lokalen Dateien werden ja alle paar Augenblicke überschrieben. Hässlich, geht aber. 

Caveat: 
Für jeden so eingebundenen Kalender gibt es nun ein eigenes Verzeichnis unter ~/.kde/share/apps mit einem Namen wie akonadi_ical_resource_1. Und bei jeder Aktualisierung wird dort eine Kopie der .ics angelegt. Wenn das eine Weile läuft, können das seeehr viele Dateien sein. Zu allem Überfluss schreibt bei mir auch noch /usr/bin/akonadi_nepomuk_calendar_feeder bei jeder Aktualisierung eine Unzahl gleichlautender Fehlermeldungen nach .xsession-errors:

"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "QLocalSocket::connectToServer: Invalid name"
"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "org.freedesktop.DBus.Error.ServiceUnknown - The name org.kde.nepomuk.services.nepomukstorage was not provided by any .service files"
"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "Unsupported operation (2)": "Invalid model"
"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "org.freedesktop.DBus.Error.ServiceUnknown - The name org.kde.nepomuk.services.nepomukstorage was not provided by any .service files"
"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "Unsupported operation (2)": "Invalid model"
"/usr/bin/akonadi_nepomuk_calendar_feeder(12243)" Soprano: "Unsupported operation (2)": "Invalid model"
Und wenn man nicht mit regelmässigem Aufräumen oder logrotate vorbeugt, wird für dies kleine Kalendergimmick die Homepartition mit einem Wust nutzloser Daten zugepflastert...
 
update:
Es gibt von akonadi-google eine neue Version mit Bugfixen und Aussicht auf Erweiterung mit KDE 4.9:
http://www.progdan.cz/2012/04/akonadi-google-0-3-1/
http://comments.gmane.org/gmane.comp.kde.devel.pim/33255
Noch zu erproben, Dank an Julez für den Hinweis.

update 23.9.2012:
Mit 4.8.x habe ich die Einbindung von Google Kalendern nicht brauchbar gesehen, mit KDE SC 4.9.1 (Arch Linux) funzt es. Prompt und bequem.

(Page 1 of 1, totaling 4 entries)