KDE PIM/KOrganizer

From KDE Community Wiki

Developer Information

KOrganizer
KOrganizer

KOrganizer is the calendar and scheduling program for KDE. KOrganizer provides management of events and tasks, alarm notification, web export, network transparent handling of data, group scheduling, import and export of calendar files and more.

  • Coding Style -- please follow these style guidelines when writing code in KOrganizer, so that your code is easy to integrate with the existing codebase.
  • Architecture -- basic description of the architecture of KOrganizer.

As always, the API Dox are a useful reference. The KOrganizer APIDOX and libkcal APIDOX are quite extensive.

Calendar Formats

KOrganizer is based on the iCalendar standard.

  • iCalendar format
  • iTIP iCalendar Transport-Independent Interoperability Protocol
  • iMIP iCalendar Message-Based Interoperability Protocol
  • libical, an Open Source effort to implement the iCalendar and related standards.

KOrganizer Development Links

There are many sources of information about KDE development on the internet. The following list shows only a small subset of the available web pages. Have a look for more by yourself.

  • KDE Techbase is the central site for KDE development information. Not all pages necessarily reflect the latest state of KDE development, because this is moving very fast, but there is a lot of useful information.
  • Mailing Lists. That's probably the ultimate source of development information. Follow discussions of KDE core and application developers and ask your questions. Unless you don't think about what you are saying, you will surely get an answer. The following mailing lists might be of interest for you:
    • [email protected] for personal information manager issues, including KOrganizer development. That's the list for KOrganizer specific questions and discussions. Further information on the kdepim-mailinglist can be found here.
    • [email protected] for discussions about general KDE application development.
    • [email protected] is the mailing list for Qt developers. As KDE is based on Qt, you will find this list valuable.
  • Finally there is the source code itself. Have a look at the web frontend to the KDE projects. There you have access to the complete code base of the central KDE packages and can follow the development process by looking at the history of individual files.

Architecture and framework

  • KOrganizer makes use of the KDE resource framework KResources which provides uniform management of calendar, addressbook and similar resources including generic ways to handle locking and change notification. This also provides a plugin interface for adding resources which makes it possible to easily extend Korganizer for example to access groupware servers or other ways to store calendar data.
  • KOrganizer configuration is based on KConfig XT. That means that there is an abstract XML based description of the configuration which is used for generating the needed code to access the configuration data and serves as base for external configuration tools.
  • Accessing the calendar from the command line is handled by a native command line application, konsolekalendar.