CalendaringSynchronisation

CalendaringSynchronisation

Status

Introduction

There are many sources of Calendaring information. Calendars can be found in PDAs, in Cell Phones, Computers, and on the web. Users may also have multiple calendars: one for work activities, one for home activities and maybe another for clubs or other groups of which they are a member. Calendars can also be used for resource allocation.

Rationale

The use of calendars is complicated: Who has the right to view or modify, how do you allow collaboration, how do you make sure the data is available and up-to-date when disconnected?

The goal is to have a consistent view.

Major Linux Distributors like Novell and application makers like the Mozilla Foundation are already deploying calendaring solutions.

Calendaring is one of the central applications in most groupware suites. Because iCal and vCard are closely related standards, we will likely see advancements in address book synchronization with portable devices at the same time as we see calendar synchronization.

Scope and Use Cases

Calendaring on Linux is a very immature application. It is too early to consider extending Linux calendaring to cell phones and PDAs when wired in applications still do an inadequate job.

The common case of Ubuntu running in a corporate environment (connecting against an Exchange server) is already adequately covered by the evolution-exchange plug-in.

  • Managers want you to be in multiple BOFs at once.
  • John wants Jill and only Jill to be able to view and edit his calendar.
  • John wants to make sure the basketball court is available for his game.
  • John wants to publish a public schedule for the basketball team.
  • Jill wants John to be able to view but not edit her calendar.
  • Jill wants to invite John to a meeting but needs to see his calendar to make sure the invitation is not at a stupid time.

Implementation Plan

This is largely an upstream issue. If the Evolution bounty is not solved within 6 weeks http://bugzilla.gnome.org/show_bug.cgi?id=127538 we should devote resources to completing the work. This is a "publish your calendar" rather than a "synchronise calendar" feature, but could be extended to support bidirectional synchronisation. Evolution also supports subscribing to calendars over HTTP similar to what iCal (the Mac OS X application) does.

For multi-directional synchronisation, multisync can sync between a file backed storage, Evolution, IrMC devices, Palm, SyncML, Nokia phones (with gnokii) and Opie/Zaurus devices. It has a plugin-based architecture where it is reasonably easy to add new devices. A plugin which one could easily imagine being created would be CalDAV.

CalDAV is emerging as a de-facto standard. Google returns 6510 hits, so it is likely best to wait for upstream to complete work that is already in progress. The CalDAV specification has been submitted to the IETF. CalDAV addresses the issue of doing partial rewrites to a calendar. Currently, the application has to download the full iCalendar file, insert, update or remove the event, then re-upload the file. This can potentially take a long time and is an inelegant solution. CalDAV makes it possible to ask the server to add, update or remove an event without having to go through the whole process by doing most of it server-side.

Data Preservation and Migration

N/A

Packages Affected

main:

universe:

  • colab (server)
  • chandler (client)
  • openexchange (server)
  • phpgroupware (server)
  • egroupware (server)
  • php4-mcal (crack)
  • Webcalendar (client)
  • multisync (good crack)

User Interface Requirements

User interface is provided by each application. The interchange format is defined by iCalendar. http://www.faqs.org/rfcs/rfc2445.html and potentially CalDAV http://greenbytes.de/tech/webdav/draft-dusseault-caldav-01.html

Outstanding Issues

  • Adoption of CalDAV standard by major vendors.
  • Implementation of iCal and HTML publishing from evolution.
  • Revisit this post-breezy.

UDU BOF Agenda

UDU Pre-Work


CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/CalendaringSynchronisation (last edited 2008-08-06 16:14:01 by localhost)