In a lengthy article about WebDAV i've written a long while ago I've explained how and what WebDAV is and what are the problems you might encounter.
Suggesting by the comments (over 200) it's a pretty popular topic but there's no help on the net for anything more complex than simple operations because
MSDN suggest that WebDAV is totally unsupported. So anything you do with it you're on your own.
Having said that let's see how to do those 2 things from the title:
Cancel a Meeting Request
1. get the Meeting Request URI from the inbox
2. get the associated appointment for that Meeting Request
explained how in previous article under
Development problems and bugs - 3. Getting associated appointment from a meeting request reply
3. modify (PROPPATCH) it with the setting the appointments stampdate to now
4. modify (PROPPATCH) the appointment like this (change the dtstamp property to now):
<?xml version=\"1.0\" ?>
<a:propertyupdate
xmlns:a=\"DAV:\"
xmlns:n0=\"http://schemas.microsoft.com/exchange/\"
xmlns:n1=\"urn:schemas:calendar:\">
<a:set>
<a:prop>
<n0:outlookmessageclass>IPM.Schedule.Meeting.Canceled</n0:outlookmessageclass>
<a:contentclass>urn:content-classes:calendarmessage</a:contentclass>
<n1:dtstamp>2007-08-22T15:36:52.696Z</n1:dtstamp>
<n1:method>CANCEL</n1:method>
</a:prop>
</a:set>
</a:propertyupdate>
5. move the appointment to ##DavMailSubmissionURI##
Accept a Meeting Request
1. get the meeting request URI from the inbox
2. get it's from and to properties (FROM property will be set to TO, and TO property will be set to FROM in the reply)
3. copy the meeting request to the Calendar folder (now you have 2 identical meeting requests - one in inbox and one in calendar)
4. move the meeting request from inbox to drafts folder
5. modify (PROPPATCH) the meeting request in the Calendar folder like this (change the dtstamp property to now):
<?xml version=\"1.0\" ?>
<a:propertyupdate
xmlns:a=\"DAV:\"
xmlns:n0=\"http://schemas.microsoft.com/exchange/\"
xmlns:n1=\"urn:schemas:calendar:\"
xmlns:n2=\"http://schemas.microsoft.com/mapi/\" >
<a:set>
<a:prop>
<n0:outlookmessageclass>IPM.Appointment</n0:outlookmessageclass>
<a:contentclass>urn:content-classes:appointment</a:contentclass>
<n1:dtstamp>2007-08-22T16:14:30.492Z</n1:dtstamp>
<n1:meetingstatus>CONFIRMED</n1:meetingstatus>
<n1:method>REQUEST</n1:method>
<n2:responsestatus>3</n2:responsestatus>
</a:prop>
</a:set>
</a:propertyupdate>
6. modify (PROPPATCH) the meeting request in the Drafts folder like this (change the dtstamp property to now):
<?xml version=\"1.0\" ?>
<a:propertyupdate
xmlns:a=\"DAV:\"
xmlns:n0=\"http://schemas.microsoft.com/exchange/\"
xmlns:n1=\"urn:schemas:calendar:\"
xmlns:n2=\"urn:schemas:httpmail:\"
xmlns:n3=\"urn:schemas:mailheader:\"
xmlns:n4=\"http://schemas.microsoft.com/mapi/\" >
<a:set>
<a:prop>
<n0:outlookmessageclass>IPM.Schedule.Meeting.Resp.Pos</n0:outlookmessageclass>
<a:contentclass>urn:content-classes:calendarmessage</a:contentclass>
<n1:dtstamp>2007-08-22T16:18:07.532Z</n1:dtstamp>
<n1:meetingstatus>CONFIRMED</n1:meetingstatus>
<n1:method>REPLY</n1:method>
<n2:subject>Accepted: yourOriginalSubjectHere</n2:subject>
<n3:to>to_Email@this_is_the_from_property_value_of_the_received_meeting_request</n3:to>
<n4:responsestatus>3</n4:responsestatus>
</a:prop>
</a:set>
</a:propertyupdate>
7. move the item from Drafts to ##DavMailSubmissionURI##
That should be it. Enjoy!