Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ICalendar and event updates not working in Outlook

Tags:

I'm generating ICalendar (.ics) files.

Using the UID and SEQUENCE fields I can update existing events in Google Calendar and in Windows Calendar BUT NOT in MS Outlook 2007 - it just creates a second event

How do I get them to work for Outlook ?

Thanks

Tom

like image 564
Tom Carter Avatar asked Sep 05 '08 09:09

Tom Carter


2 Answers

I've continued to do some testing and have now managed to get Outlook to update and cancel events based on the .cs file.

Outlook in fact seems to respond to the rules defined in RFC 2446

In summary you have to specify

METHOD:REQUEST and ORGANIZER:xxxxxxxx

in addition to UID: and SEQUENCE:

For a cancellation you have to specify METHOD:CANCEL

Request/Update Example

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SYFADIS//PORTAIL FORMATION//FR METHOD:REQUEST BEGIN:VEVENT UID:[email protected] SEQUENCE:5 DTSTAMP:20081106T154911Z ORGANIZER:[email protected] DTSTART:20081113T164907 DTEND:20081115T170000 SUMMARY:TestTraining STATUS:CONFIRMED END:VEVENT END:VCALENDAR 

Cancel Example;

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SYFADIS//PORTAIL FORMATION//FR METHOD:CANCEL BEGIN:VEVENT UID:[email protected] SEQUENCE:7 DTSTAMP:20081106T154916Z ORGANIZER:[email protected] DTSTART:20081113T164907 SUMMARY:TestTraining STATUS:CANCELLED END:VEVENT END:VCALENDAR 
like image 147
Tom Carter Avatar answered Oct 19 '22 02:10

Tom Carter


I got a hold of Tom Carter, the asker. He had a working example with a request followed by a cancellation. What I had wrong was my METHOD was inside my VEVENT when it should have been outside. So here is a working update!

Original:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:0 DTSTAMP:20081108T151809Z ORGANIZER:[email protected] DTSTART:20081109T121200 SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR 

Update:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:1 DTSTAMP:20081108T161809Z ORGANIZER:[email protected] DTSTART:20081109T121300 SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR 

All I did was add the request method (in the correct spot!), and an organizer.

like image 39
Chris Avatar answered Oct 19 '22 02:10

Chris