GSOC 2014: Akonadi Commandline Client’s Current Status

Hey everyone!

GSoC 2014 just ended (today was the firm pencils down date) and I thought it would be great to blog about the current status of my project.

AkonadiClient is an application that allows power users and system administrators to manage Akonadi from the command line.

As per my proposal I had to improve upon and add commands to the already existing prototype of the client (developed by my mentors Kevin Krammer and Jonathan Marten).

I recently finished adding documentation (man pages) to the project and also finished improving upon the add command and it’s test cases. And I beleive this completes all the tasks that I had planned for in my GSoC proposal.Features of AkonadiClient

For those who are interested, following are the commands that are supported by AkonadiClient after this summers work (short description included):

  • add – Add an item to a collection
  • *list – *List collections
  • rename*-* Rename collections
  • *move – *Move a collection
  • *copy – *Copy a collection
  • create*– *Create new collections
  • delete*-* Delete an item or a collection
  • show*-* Shows the raw payload of an item
  • *update – *Update an items payload
  • edit*– *Open an item’s payload in $EDITOR for editing
  • agents*– *Manage running Akonadi agents
  • *export – *Export a collection to XML
  • import* – *Import a collection from XML
  • expand*-* Expands a contact group item
  • *info – *Display information about a collection or an item
  • tags – List all known tags

In addition to these commands a command shell / interpreter has also been created by me which is invoked when no arguments are passed to the akonadiclient. It can be used to run multiple commands without launching a separate instance of the application.

Future Plans

I would love to continue working on the project and add bug fixes and or enhancements (and more thorough test cases :)). I would also love to work on other parts of KDE  like other PIM applications and Plasma.


I would like to thank my mentors Jonathan Marten and Kevin Krammer  for their support and guidance and I really appreciate the time and effort you put into reviewing my patches Kevin, I’ve learnt a lot working on this project with you (especially the need for properly formatted code :)) and thanks Jonathan for the invaluable suggestions that you gave at the start of the project and the implementation of the tags command :)

I would also like to thank Daniel Vrátil (KDE PIM) for suggesting the proper way to test akonadiclient using Akonadi’s isolated testing environment, *Luigi Toscano *(Documentation Team) for pointing me in the right direction pertaining to KDE’s standard way of writing man pages and *Yuri Chornoivan *(Documentation Team)  for reviewing the documentation that I’ve written for the project, much appreciated guys!

This has been a really fun summer! Now, I can finally go and get a full nights sleep :D


Bhaskar Kandiyal

GSoC 2014: Akonadi Commandline Interface Project

Hello everyone :)

I know it’s a little late to introduce myself and my GSoC project. But better late than never I guess :)

I am Bhaskar Kandiyal a student pursuing masters in Computer Applications and I have been accepted as a student to work for KDE as a part of GSoC this year! My mentors are Jonathan Marten and Kevin Krammer and I would like to thank them for giving me an opportunity to work on this project.

My project is titled Akonadi Commandline Interface Project. As evident from the name it’s an application that will act as a commandline interface to Akonadi so advanced users and system administrators can access and modify Akonadi’s data from shell scripts etc.

A demo project that I extended from the early prototype made by Kevin Krammer and Jonathan Marten is available here:

As of now I have implemented the –dryrun option for all the commands that modify the Akonadi datastore. And currently I’m working on adding basic filesystem and data commands (delete, edit etc.) to the client.

More details about the project and my progress will be posted on this blog :)


[GSOC 2012] Weekly Report – 13

Hi everyone :)

Finally, last week of GSOC finished! Time flies!

This week I had to do documentation for the web interface. For documenting the JavaScript functions and classes, I used the awesome YUIDoc. It works just like JavaDoc, except it’s language independent and can be used to create a temporary server to serve the HTML documentations on-the-fly i.e as you edit the documentation you can see how it all looks by running YUIDoc in server mode.

I also wrote a small wiki page mentioning how one can extend the web interface and what guidelines to follow when adding a new application or a new theme to the interface. It also contains steps on how to generate documentation for the JavaScript files using YUIDoc.

I didn’t add a ‘doc’ directory to the repository since the WiFiServer and CloudSync server use the web interface ‘as is’ directly from the repository and we wouldn’t want the server to serve contents of the doc directory to the user do we? :P

Also, some last minute bugs reported by Aaron were also fixed. They were mostly CSS related. Aaron also suggested quite a lot of improvements to the UI of Shopping List as well, but since we don’t have time in GSOC left now, I’d love to work on those after GSOC :)

So, that’s that, it’s a wrap folks! I’ll continue to work on the web interface after GSOC as well and post new improvements on this blog. Now awaiting the final evaluations! :)