The iCalender protocol is specified in [RFC 2445]. It is basically the next version of the vCalender format. The iCalender format follows the general rules for the Versit format. It specifies event, to-do, journal, free/busy, and time zone data. Events and to-do items may also have alarm data.

VEVENT

An event is anything that starts at a certain time and has a specific duration. This includes things such as meetings, lectures, seminars, birthday parties, your favorite TV show and so on.

VTODO

A to-do item is something that has to be done, optional with a due date. For example: Sign up for tests, buy birthday present, clean up room.

VJOURNAL

A journal entry stores text or other data for a specified date and time, usually in the past

VFREEBUSY

Free and Busy time schedules are needed for coordinating meetings with different people. This information is usually made available to others.

VTIMEZONE

Instead of using the system time zone data iCalender defines its own format to specify timezones.

iCalender is just a way of storing the data. Synchronizing it is specified in [RFC 2446]. This protocol is called iTIP (iCalendar Transport-Independent Interoperability Protocol). So iTIP is what is actually interesting.

Unfortunately, iTIP does not provide the requested features. iTIP is a protocol for synchronizing events, such as meetings between different people, each with their own address books, but not different address book for one person.

It provides mostly features for scheduling events. A person can publish her free and busy time to a group or publically. Anyone can request a meeting, and iTIP offers support for accepting, declining or making a counter proposal.

Last, but not least, the iCalendar Message-Based Interoperability Protocol (iMIP, specified in [RFC 2447]) defines how iTIP messages can be embedded into E-mails for automatic processing by combined mail and scheduling programs such as Outlook and Evolution.

The iCalendar / iTIP / iMIP solution provides good management for personal and corporate scheduling. It it fully implemented in Evolution, and partially in Outlook. Unfortunately, it does not solve the problem of synchronizing personal schedules across multiple calendar programs.