デモの Nextcloud ビルド (バックエンドは SabreDAV のようです) を作成し、カレンダー アプリを有効にしました。PROPFIND などの関数は CURL 経由で動作していますが、新しいカレンダー (カレンダー オブジェクトではない) を作成できません。
MKCALENDAR 関数はサーバーに存在しないため、次のように RFC5689 仕様に基づいて MKCOL を使用しています。
<D:mkcol xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:set>
<D:prop>
<D:resourcetype>
<D:collection/>
<C:calendar/>
</D:resourcetype>
<D:displayname>New Event XYZ</D:displayname>
</D:prop>
</D:set>
</D:mkcol>
私が実行している完全なコマンドは次のとおりです。
curl -v --user "admin:admin" -H "Content-Type: application/xml" -X MKCOL "https://try.nextcloud.com/ohth5ael/remote.php/dav/" -d '<?xml version="1.0" encoding="utf-8" ?><D:mkcol xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"><D:set><D:prop><D:resourcetype><D:collection/><C:calendar/></D:resourcetype><D:displayname>Lisas Events</D:displayname></D:prop></D:set></D:mkcol>'
そしてエラー応答:
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotFound</s:exception>
<s:message>Node with name 'root' could not be found</s:message>
</d:error>```