LuckyLuigi - 2009-08-05

In my pleasant experience with ical4j I've run in to a small list of problems in communicating with 3rd party client apps that drove me up the wall now and again :)

For your convenience, here is the list of RFC violations I've encountered :

- Hotmail DECLINED REPLY (sometimes?) does not send DTSTART property in VTIMEZONE component which is required according to RFC 2445 4.6.5 Time Zone Component.

- Outlook 2003 can only parse icalendar messages that are folded with a length of exactly 75 octets which is incorrect according to RFC 2445 4.1 Content Lines (as they are allowed to be folded at a smaller length).

- Hotmail REQUEST invitations (sometimes?) don't have a DESCRIPTION property in their VALARM component which is required according to RFC 2445 4.6.6 Alarm Component

- Outlook 2007 sends REPLY without an ORGANIZER property which violates RFC 2446 3.2.3 REPLY and RFC 2445 4.8.4.3 Organizer.

- Gmail does not understand a REPLY message unless it has both DTSTART and DTEND properties included in the VEVENT (which is optional according to RFC 2445 4.6.1 Event Component and RFC 2446 3.2.3 REPLY)

- Both Hotmail and Gmail do not understand a CANCEL message unless it has both DTSTART and DTEND properties included in the VEVENT (which is optional according to RFC 2445 4.6.1 Event Component and RFC 2446 3.2.5 CANCEL)

If you use ical4j for parsing and are at the receiving end of such an RFC violation, be aware that these messages can be parsed by use of one (or more) of the following properties :

ical4j.unfolding.relaxed=true
ical4j.parsing.relaxed=true
ical4j.validation.relaxed=true
ical4j.compatibility.outlook=true

be aware that calling validate on the resulting Calendar will throw a ValidationException (as is only right and proper).

I wanted to include this in the ical4j wiki, but I can login, but can't edit (ip check ?).

If you know of any more problems like this I'd love to hear about them :)