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.

https://blogs.msdn.com/webdav_101/archive/2008/05/05/howto-vb-cdo-1-21-cancel-a-recurring-meeting-using-a-single-recurrance.aspx

            Respond Method (MeetingItem Object)

            https://msdn.microsoft.com/en-us/library/ms527208.aspx

Problems with CDO 1.21 sending meeting cancellations

https://blogs.msdn.com/jeffga/archive/2007/08/02/problems-with-cdo-1-2x-sending-meeting-cancellations.aspx