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


http://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


      http://msdn.microsoft.com/en-us/library/aa563309(EXCHG.80).aspx


 


      Canceling Appointments and Meetings


      http://msdn.microsoft.com/en-us/library/ms870347(EXCHG.65).aspx  


 


      Sending Meeting Updates


      http://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


http://msdn.microsoft.com/en-us/library/aa494215(EXCHG.80).aspx


 


Internet Calendaring and Scheduling Core Object Specification (iCalendar)


http://www.ietf.org/rfc/rfc2445.txt  


 


RFC 2445 – Internet Calendaring and Scheduling Core Object Specification (iCalendar)


http://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


http://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.


 


http://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)


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


 


Problems with CDO 1.21 sending meeting cancellations


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


 

Comments (1)

  1. 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 ???