Khalkhi (say [χalχi]) is a plugin-based framework for (the properties of) entries in the KDE Addressbook and services upon them. It consists of two libs, libkhalkhicore and libkhalkhigui, and a control center module.
The framework models an addressbook entry, like a person or organization, as a list of property types, with no, one or more items of a type for each entry. There are three types of services for a property (e.g. email address):
* action service (e.g. send email)
* data action service (e.g. send file per email, like from drag'n'drop)
* status service (e.g. number of unread emails in assigned folder)
The tarball includes a lot of services for the most common properties:
* birthday: copy date; has birthday
* im address: chat with; send message; send file; online status
* email address: send email; copy address; send files/urls;
open assigned folders in KMail; unread emails in assigned KMail folder
* homepage: open; copy url;
* blog feed url: copy
* phone number: make call; send fax; send SMS; copy number;
* postal address: open in Google Maps; copy address
* note: copy note
(Partial) translations in: da, de, el, es, ja, nl, pt, pt_BR, sk, sv (thanks to the translators).
Examples for programs using the framework are a cards server and a Kicker applet, which are available as seperate packages:
http://www.kde-apps.org/content/show.php?content=54451
http://www.kde-apps.org/content/show.php?content=54452
Please see also http://frinring.wordpress.com/2006/07/05/framework-for-contacts-and-services-slowly-getting-shapes/
Developers, you are welcome to try to create own services! Have a look at the folder "services/example"
If you want to build directly from KDE's repository:
svn co svn://anonsvn.kde.org/home/kde/trunk/playground/pim/ -N
cd pim
svn up khalkhi
svn up khalkhiapplet
svn up khalkhicards
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin
make -f Makefile.cvs
./configure
make
su -c "make install"
PS: Packagers are welcome

Ratings & Comments
2 Comments
look nice :) will it be possible to have a service who automatically reminds me of birthdays (a few days before the date...) through knotify or something like that ?
There is already a "Has Birthday" status service (for experiments), but currently it emits just signals when the day is started and when it ends. And it works just for a given person (like of a button of the Kicker applet), not for a whole list (list status services are still on the whiteboard). And currently only the applet cares for events. But to answer your question, yes, it is possible :) It may be even just a few lines so it warns a few day before, just have a look at the code, in services/birthday, it should be very simple.