Akonadi Google Resource: Tasks support



As the title says, I just added support for Google Tasks by creating the Akonadi Google Tasks Resource. The Tasks API provided by Google is really simple and does not support many properties, only name, summary, due to date, completed date and status. You can’t set progress percentage, start date, attendees nor reminders (this sucks!). Despite the fact, that the API provides means for tree-like structure of tasks (tasks and subtasks), it does not seem to work. So you can only have a linear list of tasks. A positive thing is, that due to this limited functionality of Google Tasks the resource has a full support of this API.

The reason for independent resource is that you can have multiple task lists in Google Calendar, thus merging this functionality into Google Calendar Resource is not an option. Unfortunately, you will now have the tasks resources displayed in the list of calendar resources in KOrganizer.

The second and very important update is, that we now have a product in KDE Bugzilla, so you don’t have to report bugs in comments here. The product is “libkgoogle” so you can report bugs or whishes here: https://bugs.kde.org/enter_bug.cgi?product=libkgoogle&format=guided.

If you think you have posted a request/report under an earlier blogpost and I still haven’t responded/fixed/implemented your request, please report it again in the bugzilla.

Sorry, no screenshots today :)


23 thoughts on “Akonadi Google Resource: Tasks support

  1. This is awesome news. At least I won’t be using the flacky RTM plasmoid for managing tasks. How do I download this? Does it come with a separate download or just via the same git repo

    • Only git atm, because there are too many changes and fixes going in to make a tarballs with a “stable” releases.

      git clone git://anongit.kde.org/akonadi-google

      EDIT: sorry, I misread your comment – yes, it’s part of the original git repo, it’s the same stuff as Contacts or Calendar resource.

  2. genesiss

    finally… the last area google apps were not supported by off-line product… its nice that KDE Pim is first :D… it only means that painful rewrite based on completely new technologies was worth a shot :D…

  3. martin

    Hi progdan,

    nice to see how quickly you progress with that project :) Hope you can keep this going on ;)

    Just a short question: Is the product (libkgoogle) in the bug tracker intended only for issues in the core library (libkgoogle) or also for the actual Akonadi agents (which from my understanding are clients to that library)? I’ve two bugs I’d like to report, but one’s directly in the task agent (at least I guess so), so I’m not sure whether it belongs into the bug tracker, too.

    • Yop, you can report both to the libkgoogle product. The major part of the functionality is hidden in the libkgoogle anyway, so in most cases even if you think that the resource is broken it’s actually the libkgoogle where the problem is. Just pick the right component and I’ll find out where the problem really is :)

    • Google’s task lists are independent on calendars, so you would have both, calendars and tasks in the list of “calendars” in the settings dialog and you’d see either events from a calendar or tasks from a task list, but not both (like when using single ICal calendar for example, which can hold both, tasks and events). At the end you’d have to add resources for all your calendars and all your task lists anyway, so I just decided to split them into two resources to make the code simpler.

      In the post I wrote that merging is “not an option”, which is rather strong and incorrect expression of what I wanted to say. I’ll try to provide clear explanations right in the post next time :)

    • It is possible to distinguish them, it’s just that having different calendar and different task list selected in a single instance of a Calendar Resource would just be messy and unclear.

    • Theory says, that it should be automatically updated based on the update interval you set in resource settings dialog.

      In practice, it does not seem to work as well as it is supposed to. I am aware of the problem and I will try to solve it when I have more time.

  4. how will the end user end up experiencing libkgoogle, and in what kind of timeframe?

    will it be a part of kde-pim/kontact in SC 4.8, and thus it would be automatically packaged in distro’s that use that kde release?

    great work, many thanks


    • Hi,

      I want to make libkgoogle an independent library so that others who want to bind their KDE apps (and later even pure Qt apps) to Google services can use it. Yet there are some more changes in API coming in, so until that, I’ll keep libkgoogle as a private servant for the resources only.

      Trunk soft freeze for KDE 4.8 is on October 27th. Unfortunately it’s impossible for me to make all the changes, fixes and improvements in time to make libkgoogle and resources stable and bug-free enough to be part of KDE SC. I’m aiming for 4.9 at this moment.

      For now, users have to build the project from sources or rely on their distributions to package it. Of course, feel free to package the resources for whatever distro you use :)

  5. countdruncula

    Might I just say thank you – I’ve been struggling with the “native” kde google support for a couple of months now – finally so much closer to having my desktop and phone syncing from the same source.

  6. thnks man,
    this is how I installed it using kubuntu oneiric:

    sudo apt-get install cmake kdelibs5-dev kdepimlibs5-dev libqjson-dev libphonon-dev xsltproc
    git clone git://anongit.kde.org/akonadi-google
    cd akonadi-google
    mkdir build
    cd build
    cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
    sudo make install

    works like charm…

  7. Hannes Schweizer

    Hi, this is the greatest thing since sliced bread!

    One observation about subtasks: if you group your tasks directly via google web interface, it seems the hierarchy is correctly synced to kontact’s todo list.

    Is this the recommended way to introduce hierarchy?
    Any idea if this will work bi-directional anytime soon?

    again: you da man ;)

    • Hmm, I didn’t even know it works! :) I remember I wanted to make it work when I was implementing the Tasks API, but Google didn’t cooperate back then. Maybe they have fixed it since. The API is still considered unstable and uder-development.

      I have created a bug report, add yourself to CC if you want to get notified about progress :)

  8. Hannes Schweizer

    Do you recommend a specific android app for task handling?

    Gtasks seems to work great (add tasks, change comments), however deleting tasks is not propagating well to akonadi (google calendar however displays the modifications correctly).

    Trying to remove those zombie tasks from akonadi as well gives me this kind of plasma error:

    plasma-desktop(5193)/plasma: Ignoring item. item.id() = 1879 ; cached id = 0 ; item uid = "MDg5MjIwMDc5Mzg2MDE1MDg3NzY6MDoxODUyMjExNjE0" ; calendar = "" ; existed in cache = false ; storageCollection.id() = 24 ; parentCollection.id() = 24 ; hasParent = false ; knowParent = false
    plasma-desktop(5193)/plasma: Possible cause is that the resource isn't explicitly setting an uid ( and a random one is generated )

    Thanks again for your ongoing effort, and if by chance you’re planning to enjoy the upcoming Amon Amarth gig in Linz (http://www.posthof.at/programm/programm/article/amon-amarth-as-i-lay-dying) – let’s meet :)

    • I’m a happy owner of a Nokia N900 device, so I can’t really help much about Android apps :)

      The messages are caused by a known problem (which causes many more troubles and bugs). It’s on top of the to-fix list, I just have to find some time to actually fix it :).

      And enjoy the Amon Amarth show ;) I have already depleted my metal-budget for this year, so maybe next year :)

Comments are closed.