How do I cancel an appointment with WebDAV?
Unfortunately, there is no facility to cancel a meeting via WebDAV. You may be able to delete an appointment directly from a calendar if there are no attendees. A meeting is pretty much an appointment with attendees. If you have an appointment with attendees (i.e. it’s a meeting), you cannot just delete it and expect the attendees to get notified – no cancellation emails will be sent.
Now, please read this:
Available support for applications that use the WebDAV protocol to access Exchange 2000 Server or Exchange Server 2003
https://support.microsoft.com/kb/920134
So, with WebDAV, any sort of meeting functionality is not supported and that of course means meeting cancelations…
APIs which handle meeting functionality will cover areas such as:
Single instance Meeting creation
Single instance Meeting updates
Single instance Meeting Cancelations
Recurring instance Meeting creation
Recurring instance Meeting updates
Recurring instance Meeting cancelations
Handling time zone issues
The list goes on and on…
A typical meeting cancelation will need to handle things such as:
Locate the meeting
Send cancelation messages for each attendee as needed.
Remove the recurring instance or meeting series.
These operations are not wrapped with WebDAV. While you may be able to get some of the functionality with WebDAV code and some careful coding, such code may not work in all case.
For WebDAV to handle recurring meetings properly, it would need to handle timezone issues (which it does not, recurring meeting manipulation (which it does not), creation of carefully VCALENDAR messages which are specific to the meeting, and its state. Working with VCALANDAR messages without an Microsoft API which wraps this functionality is not supported.
Here are some possible work-arounds:
a. Use CDOEX: You will need to use CDOEX on the Exchange server. Some customers will write a web service which runs on their Exchange Server and uses CDOEX to do the cancelation.
The Calendar Object Model
https://msdn.microsoft.com/en-us/library/aa563309(EXCHG.80).aspx
Canceling Appointments and Meetings
https://msdn.microsoft.com/en-us/library/ms870347(EXCHG.65).aspx
Sending Meeting Updates
https://msdn.microsoft.com/en-us/library/aa563404(EXCHG.80).aspx
b. Reverse Engineer: You can try to reverse engineer the cancellation emails by capturing network traffic when cancellation email is sent via OWA and construct emails for cancellation of the appointment item. Next send these cancellation emails and delete the original appt from the person who made it. There is no public documentation available for the format of Exchange iCalendar cancellation emails.
Calendars on the Internet
https://msdn.microsoft.com/en-us/library/aa494215(EXCHG.80).aspx
Internet Calendaring and Scheduling Core Object Specification (iCalendar)
https://www.ietf.org/rfc/rfc2445.txt
RFC 2445 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)
https://www.faqs.org/rfcs/rfc2445.html
C. Use Exchange Web Services (EWS): If you have Exchange 2007, you can use EWS to do the cancelation.
MeetingCancellation
https://msdn.microsoft.com/en-us/library/aa564685(EXCHG.80).aspx
D. Use CDO 1.21:
CDO 1.21 (Collaboration Objects) can be used for doing cancelations. However, you should be aware that CDO 1.21 needs to run on an in-network box with CDO 1.21 loaded on that box and that its not supported under any managed code.
Respond Method (MeetingItem Object)
https://msdn.microsoft.com/en-us/library/ms527208.aspx
Problems with CDO 1.21 sending meeting cancellations
Comments
- Anonymous
May 04, 2008
Your blog on using CDOEX for cancellation of a meeting was very important to me, however the URLs you gave (e.g. http://msdn.microsoft.com/library/en-us/wss/wss/_cdo_canceling_an_appointment_as_the_organizer.asp?frame=true) no longer exist .. do you have better ones ???