I suppose I should explain the cause of the problem. It's perhaps a bug in the N9's implementation of CalDAV. When the N9 sends a DELETE message, it includes the Content-Type: "application/xml" header and no Content-Length. (I think this implies Content-Length:0.) Apparently, the CalDAV spec says that DELETE has no body, so there isn't any need to send the Content-Type header. This confused DAViCal. According to the developer, the spec doesn't cover this particular case. The patch he or she gave me fixes the issue.