CalDAV-Sync Task Support
This article gives an overview about task support in CalDAV-Sync. It is meant for contributors and testers or user who just want to know the status of task support.
The goal is to implement full support for VTODOs (and maybe later VJOURNAL).
Contents
Task App
I could not find any task app that satisfied my requirements to sync tasks, so I decided to start another task app. Luckily, I got some help from another developer (thanks Matthias!) who took some action and started a new project at http://code.google.com/p/caldavtodo/. This project is open source under GPL (except for the file TaskContract.java which is licensed under Apache 2.0).
I wrote a new ContentProvider that fulfilled my basic requirements. Using this ContentProvider I was able to add initial task support to CalDAV-Sync. Both, CalDavToDo and CalDAV-Sync still need much work to become stable and reliable. I'll continue to improve the ContentProvider to add support for the missing features (attendees, alarms, categories, transaction support ...) and to improve CalDAV-Sync to use all these features. You're welcome to check out CalDavToDo and help to make it a five start task app ;-).
Please consider to focus on the UI when you decide to contribute. Please understand that I won't accept contributions to the file TaskContract.java unless you explicitly license your code under Apache 2.0. I need this file in CalDAV-Sync to interface the ContentProvider, but I can't use it if I have to adhere to a copyleft. Even after CalDAV-Sync becomes open source itself I intend to use its code in closed source projects.
Contributors & Alpha testers welcome
CalDavToDo and the CalDAV-Sync Task branch are still experimental and not ready for productive use. You're welcome to clone the CalDavToDo repository and contribute or just test. I'll send out the latest test version of the CalDAV-Sync task branch on request.
Important notes for contributors & testers
- Do not test with important data! If you're testing with less important data ensure you have a recent backup. Even calendar sync should be considered experimental in the task branch of CalDAV-Sync, because I had to change a few things in the calendar-sync part.
- Please always run a full test for the normal calendar sync first. There is no use of an app that can sync tasks when calendar sync is broken. Working calendar sync has the highest priority!
- Task support is currently one-way. Two-way support will follow when one-way sync becomes stable.
- Since CalDavToDo is not for daily use yet, there is no database migration method yet. That means every update might invalidate the database schema. You may have to clear the CalDavToDo application data and start over in that case.
- When you send bug reports please be sure to include the server type and version you're using and test data if possible.
Things that should already work in CalDAV-Sync
- sync new simple tasks from the server (see below for the list of fields that are synced yet)
- update simple tasks from the server (see below for the list of fields that are synced yet)
- delete simple tasks that have been removed on the server
Things that do not work yet in CalDAV-Sync
There is still much to do. Currently only basic support has been implemented. Below is a list of things that don't work yet.
- recurring tasks
- exceptions to recurring tasks
- attendees
- organizer
- alarms
- tasks with start time/date
- tasks with due time/date or duration
- categories
- attachments
- relations
- contacts
fields that should be synced correctly
Not all fields will be synced for now. Below is a list of the fields that should sync properly.
- SUMMARY
- CLASSIFICATION
- DESCRIPTION
- CREATED
- LAST_MODIFIED
- STATUS
- PERCENT_COMPLETE
- COMPLETED
- LOCATION
- GEO