<p>I'm generating ICalendar (.ics) files.</p>

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

<p>How do I get them to work for Outlook ?</p>

<p>Thanks</p>

<p>Tom</p>

[{'answer_id': 45703, 'author': 'Hank Gay', 'author_id': 4203, 'author_profile': 'https://Stackoverflow.com/users/4203', 'pm_score': 0, 'selected': False, 'text': "<p>I'm using Entourage, so this may not match up exactly with the behavior you're seeing, but I hope it helps.</p>\n\n<p>Using the iCalendar from your reply, Entourage wouldn't even import the data. Using a known-good file, I got it to import, then successfully update. Comparing the two files, the only structural differences are as follows:</p>\n\n<ul>\n<li>My known-good doesn't have a <code>VERSION</code> element</li>\n<li>My known-good doesn't have a <code>PRODID</code> element</li>\n<li>My known-good doesn't have a <code>STATUS</code> element</li>\n<li>My known-good doesn't have a <code>SEQUENCE</code> element</li>\n</ul>\n\n<p>Since Microsoft's support for open standards tends to lag, I'd suggest trying without the <code>VERSION</code> info.</p>\n"}, {'answer_id': 45969, 'author': 'Tom Carter', 'author_id': 2839, 'author_profile': 'https://Stackoverflow.com/users/2839', 'pm_score': 6, 'selected': True, 'text': '<p>I\'ve continued to do some testing and have now managed to get Outlook to update and cancel events based on the .cs file.</p>\n<p>Outlook in fact seems to respond to the rules defined in <a href="https://www.rfc-editor.org/rfc/rfc2446#page-19" rel="nofollow noreferrer">RFC 2446</a></p>\n<p>In summary you have to specify</p>\n<p><code>METHOD:REQUEST</code> and <code>ORGANIZER:xxxxxxxx</code></p>\n<p>in addition to <code>UID</code>:  and <code>SEQUENCE:</code></p>\n<p>For a cancellation you have to specify <code>METHOD:CANCEL</code></p>\n<p>Request/Update Example</p>\n<pre><code>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//SYFADIS//PORTAIL FORMATION//FR\nMETHOD:REQUEST\nBEGIN:VEVENT\nUID:TS_229377_MS_262145@syfadis.com\nSEQUENCE:5\nDTSTAMP:20081106T154911Z\nORGANIZER:catalog@syfadis.com\nDTSTART:20081113T164907\nDTEND:20081115T170000\nSUMMARY:TestTraining\nSTATUS:CONFIRMED\nEND:VEVENT\nEND:VCALENDAR\n</code></pre>\n<p>Cancel Example;</p>\n<pre><code>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//SYFADIS//PORTAIL FORMATION//FR\nMETHOD:CANCEL\nBEGIN:VEVENT\nUID:TS_229377_MS_262145@syfadis.com\nSEQUENCE:7\nDTSTAMP:20081106T154916Z\nORGANIZER:catalog@syfadis.com\nDTSTART:20081113T164907\nSUMMARY:TestTraining\nSTATUS:CANCELLED\nEND:VEVENT\nEND:VCALENDAR\n</code></pre>\n'}, {'answer_id': 280065, 'author': 'Chris', 'author_id': 13700, 'author_profile': 'https://Stackoverflow.com/users/13700', 'pm_score': 3, 'selected': False, 'text': '<p>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!</p>\n\n<p>Original:</p>\n\n<pre><code>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//WA//FRWEB//EN\nMETHOD:REQUEST\nBEGIN:VEVENT\nUID:FRICAL201\nSEQUENCE:0\nDTSTAMP:20081108T151809Z\nORGANIZER:donotreply@test.com\nDTSTART:20081109T121200\nSUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK)\nLOCATION:JFK AIRPORT (JFK)\nEND:VEVENT\nEND:VCALENDAR\n</code></pre>\n\n<p>Update:</p>\n\n<pre><code>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//WA//FRWEB//EN\nMETHOD:REQUEST\nBEGIN:VEVENT\nUID:FRICAL201\nSEQUENCE:1\nDTSTAMP:20081108T161809Z\nORGANIZER:donotreply@test.com\nDTSTART:20081109T121300\nSUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK)\nLOCATION:JFK AIRPORT (JFK)\nEND:VEVENT\nEND:VCALENDAR\n</code></pre>\n\n<p>All I did was add the request method (in the correct spot!), and an organizer.</p>\n'}, {'answer_id': 472636, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': "<p>I am using outlook 2003 (from reading the posts, 2007 appears to behave in the same way) and you need to clearly distinguish between the behaviour of the explicit file import of an ics file and the implicit import when an ics file is 'double clicked'.</p>\n\n<p>On the Outlook menu File / Import and Export ... Outlook will load as many VEVENT entries as are in the file and no amount of changing UID:, SEQUENCE: or DTSTAMP: values changes this, i.e.if you change any data and re-import it you just get a duplicate set of entries.</p>\n\n<p>If you double click on an ics file it processes the first VEVENT entry only.  However it does recognise the UID and, if the DTSTAMP: is later (the SEQUENCE can be the same but not lower) you will be prompted and it will update the event in your calendar.</p>\n\n<pre><code>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:www.membership-services.net\nMETHOD:REQUEST\nBEGIN:VEVENT\nDTSTART:20090126T210000\nDTEND:20090126T220000\nSUMMARY:Avondale - Thameside Away Game vs Croydon\nLOCATION:Whitgift School\nDESCRIPTION:http://maps.google.co.uk/maps?f=q&amp;hl=en&amp;geocode=&amp;q=CR2+6YT \nUID:AWPC_8\nSEQUENCE:0\nDTSTAMP:20090123T112600\nEND:VEVENT\nBEGIN:VEVENT\nDTSTART:20090202T213000\nDTEND:20090202T223000\nSUMMARY:Avondale - Thameside Home Game vs Orcas\nLOCATION:Putney\nDESCRIPTION:http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;ie=UTF8&amp;ll=51.4635,-0.2285&amp;spn=0.005,0.009613&amp;t=h&amp;z=17&amp;iwloc=lyrftr:w2t.90,0x48760f04a04b1801:0x49ebf12503a5d5a9,51.463459,-0.228674 \nUID:AWPC_10\nSEQUENCE:0\nDTSTAMP:20090123T112600\nEND:VEVENT\nEND:VCALENDAR\n</code></pre>\n"}, {'answer_id': 37956276, 'author': 'Mark Plumpton', 'author_id': 10422, 'author_profile': 'https://Stackoverflow.com/users/10422', 'pm_score': 2, 'selected': False, 'text': '<p>add this to your ICS file</p>\n\n<pre><code>X-WR-RELCALID:MyCal123   \n</code></pre>\n\n<p>where MyCal123 is a unique identifier for your calendar.</p>\n\n<p>By adding this line to an ICS file the entire calendar gets updated (after a prompt in Outlook). You don\'t even need to change the DTSTAMP or SEQUENCE or ORGANIZER and METHOD:PUBLISH is fine for the update. Just update the event details, double-click the ICS and the calendar will update. Note that this also works fine if you have published the calendar and provided a URL for people to view it. They just need to hit refresh after about 2mins and they will also get the update.</p>\n\n<p>Thanks to David Bjørnhart for pointing this out: <a href="https://stackoverflow.com/questions/9212329/ical-import-creates-new-calendar-when-open-the-ics-file">ICal import creates new calendar When Open the ics file</a></p>\n'}]
['https://Stackoverflow.com/questions/45453', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2839/']