iCalendar Transport-Independent Interoperability Protocol (iTIP) deprecated

General

What's this about

This article will describe how the iTIP protocol was realized, which parts of the protocol are missing and where the implementation differs from the standard.

iTIP

iTIP is a standard. It defines "how calendaring systems use iCalendar RFC5545 objects to interoperate with other calendaring systems"1. So basically it's about how to organize and maintain calendar events across multiple systems.

Transport

The RFC does explicit not mention a specific transport mechanism for iTIP. The provider implementing the RFC is free to choose. Open-Xchange uses mail to realize the iTIP protocol, efficiently implementing iMIP too.

Handled components

The iTIP protocol allows to synchronize following components

  • VEVENT
  • VFREEBUSY
  • VTODO
  • VJOURNAL

Currently the Open-Xchange Server will only handle the VEVENT component.

Methods

PUBLISH

The PUBLISH method isn't treated in any special way. A VENENT posted over PUBLISH is handled the same way as a REQUEST.

REQUEST

With the REQUEST method initial invites, updates, rescheduling and more is realized. Many of the functionality mentioned in the RFC is build. Not supported is delegating an event to another CU or forwarding to an uninvited CU.

REPLY

A REPLY normally should only transmit the replying attendee status. Nevertheless some calendaring systems edit other properties too. To avoid, e.g. a changed event title, the server will silently drop all changed properties.

However changed parameters on the attendee object itself will be taken over. As long as the URI of the attendee doesn't change all other parameters can be edited.

ADD

The ADD method is implemented as recommended by the RFC.

CANCEL

The CANCEL method is implemented as recommended by the RFC.

REFRESH

The REFRESH method is implemented as recommended by the RFC.

COUNTER

The COUNTER method is implemented as recommended by the RFC.

DECLINECOUNTER

The DECLINECOUNTER method is implemented as recommended by the RFC.

References / further reading

  1. RFC 5545 iCalendar
  2. RFC 5546 iTIP
  3. RFC 6047 iMIP