Syncing with Horde Applications

Overview

There are multiple efforts underway to get Horde applications (mainly the calendar, contacts, todos, and notes) to sync with various other applications and PDA devices. The mailing list for this effort is sync@lists.horde.org. This is a list of efforts, code, and related resources as we try to get this effort into high gear.

Horde Framework support

The Horde Framework now provides a Horde_History API, that allows easy tracking of the creation, modification, and deletion of objects outside of their storage backends (so that we have a record of an object's deletion after it no longer exists in the database, for instance). Kronolith, Mnemo, Turba, and Nag, the four Horde applications that map to the basic Palm Todos/Contacts/Calendar/Memos applications, now support this API and are thus able to provide the basic information necessary to support a synchronization process. We will be working in the future to lay the rest of the groundwork necessary, and to code the syncing logic itself.

SyncML

The current status of SyncML support in Horde is updated in our wiki: http://wiki.horde.org/SyncRoadMap, and some documentation is there as well: http://wiki.horde.org/SyncHowTo. The wiki is a more up to date source of information than this page and will likely remain so as long as SyncML support is in the development stage.

SyncML support is a work in progress. We have: an RPC stub to SyncML that's invoked through our generic rpc.php interface (syncml.php); a native-PHP WBXML parser package that works nearly perfectly, and seems to work fine using wbxml2xml on the command line; and a SyncML package that handles parsing of SyncML markup and syncing logic. That package also has the interface to various Horde applications, through the Horde Registry.

Resources, Links, Downloads

SyncML Spec/Implementation:

SyncML Applications:

WBXML: