I\'m doing some work with an icalndar appointment generation; this would allow a delegate to view an event\'s website and click on a link provided to add an appointment to their
It is possible to update an appointment, but not the way you did it. Here's what's important:
METHOD
should be REQUEST
- a PUBLISH
event will not update, it will be added again and again. REQUEST
meeting requests behave differently, and will update the existing meeting even before the user approves it. I'd note that if the events are already of type Publish, they cannot be updated (at least to my knowledge).UID
.DTSTAMP
should be bigger than the existing date stamp (this should be OK if you're creating it dynamically)ORGANIZER
- Outlook may not allow people to accept the meeting without it (not really related, but important).I have a partial summery of this in my blog - Sending Meeting Requests to Outlook via ASP.NET Mail Message, though it's missing sending the approval to the organizer, and time zones (which are very important, so I've heard).
See also: RFC 2446 - iTIP, search for section 1.3 ITIP Roles and Transactions
It is possible to update PUBLISH
ed entries. You do not need to change your METHOD
to REQUEST
(and set RSVP=FALSE
on every ATTENDEE
).
To have a new copy replace any existing one, all you need to do is bump the SEQUENCE
value. The SEQUENCE
property is primarily intended to differentiate between versions of an entry where something time related changed (e.g. DTSTART
).
However RFC 2445 does not preclude SEQUENCE
being bumped for any arbitrary reason (e.g. fixing a typo). Doing so would invalidate any workflow responses for the entry since they would be for lower SEQUENCE
values but in the PUBLISH
case there is no workflow really; its all one way.
If you are not making any time related changes to the entry then you can simply change the DTSTAMP
value to a newer one. The recipient will see they already have the UID
and SEQUENCE
value but an older DTSTAMP
, so they should simply update what they have already.
Anyone who fails to update a PUBLISH
ed entry when its SEQUENCE
or DTSTAMP
have been updated does not understand the standard or failed to implement it properly.