2
votes

Problem:

If I create an ICS file with a particular uid and sequence = 0, sending that ICS to Google Calendar or Outlook for Windows creates the event successfully. If I create another ICS with the same uid and sequence 1

  • Sending that event to Google Calendar updates it successfully

  • Sending it to Outlook for Windows causes a duplicate event to be created, and deleting either event on the calendar deletes them both

Potential Workaround:

Would the following workaround work for both Google Calendar and Outlook for Windows?

  • When an event is rescheduled, attach both a cancellation ICS and a new ICS with a different uid and sequence 0.
  • The goal is that the original event would be deleted and recreated with new event time in both Google Calendar and Outlook for Windows

Sample ICS Files (Current Files, not workaround)

original Event:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:GMT -4
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;[email protected];RSVP=TRUE:mailto:[email protected]
ORGANIZER;CN="Test Scheduling":mailto:test@s-3er8nc12r9xwme7e7orvha5os.k5hihmay.k.apex.sandbox.salesforce.com
DTSTART:20140728T090000Z
DTEND:20140728T100000Z
DTSTAMP:20140718T085713Z
LOCATION:DM Scheduling will contact you at the time of your call to connect the call.
TRANSP:OPAQUE
SEQUENCE:0
UID:040000008200E00074C5B7101A82E00800a08K0000008HIxXIAW20140718T085712Z00000000000000
DESCRIPTION:This is test #5 (7/18/14)
SUMMARY;LANGUAGE=en-us:[P3006954]:3Call-Marina test/Marina Invividual Exp
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR

Reschedule:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:GMT -4
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;[email protected];RSVP=TRUE:mailto:[email protected]
ORGANIZER;CN="Test Scheduling":mailto:test@s-3er8nc12r9xwme7e7orvha5os.k5hihmay.k.apex.sandbox.salesforce.com
DTSTART:20140729T100000Z
DTEND:20140729T110000Z
DTSTAMP:20140718T090944Z
LOCATION:DM Scheduling will contact you at the time of your call to connect the call.
TRANSP:OPAQUE
SEQUENCE:1
UID:040000008200E00074C5B7101A82E00800a08K0000008HIxXIAW20140718T085712Z00000000000000
DESCRIPTION:This is test #5 (7/18/14)
SUMMARY;LANGUAGE=en-us:[P3006954]:3Call-Marina test/Marina Invividual Exp
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR
1

1 Answers

0
votes

Rescheduling is possible with Outlook. There must be some little thing that you're missing. Try sending a simplest possible reschedule, with just UID, sequence and new times? Your UID is quite long, and the spec doesn't give any limit. Try a shorter one perhaps. Lastly, is there anything different in the structure of the reschedule message? Is it in a single part message with a mime type "text/calendar; method=REQUEST"?