创建 CalDav 日历事件

eny*_*l71 2 webdav caldav

我有一个运行在嵌入式 Linux 服务器上的 Baikal CalDav 后端。我可以使用 MKCALENDAR 调用成功创建一个具有以下正文的日历:

<C:mkcalendar xmlns:D='DAV:'xmlns:C='urn:ietf:params:xml:ns:caldav'>
    <D:set>
        <D:prop>
            <D:displayname>Test Calendar</D:displayname>
            <C:calendar-description>Calendar Description</C:calendar-description>
        </D:prop>
    </D:set>
</C:mkcalendar>
Run Code Online (Sandbox Code Playgroud)

但是,我一直无法找到如何向此日历添加事件的示例。

我尝试了以下但没有运气:

<C:mkcalendar xmlns:D='DAV:'xmlns:C='urn:ietf:params:xml:ns:caldav'>
    <D:set>
        <D:prop>
            <D:displayname>Test Calendar</D:displayname>
            <C:calendar-description>I Am Testing</C:calendar-description>
            <C:calendar-data>
              <![CDATA[
                  BEGIN:VCALENDAR
                  BEGIN:VEVENT
                  UID:test123
                  SUMMARY:Test Event
                  DTSTART=20140920T080000
                  DTEND=20140920T170000
                  END:VEVENT
                  END:VCALENDAR]]>
            </C:calendar-data>
        </D:prop>
    </D:set>
</C:mkcalendar>
Run Code Online (Sandbox Code Playgroud)

有人可以指出我使用 html 调用向 CalDav 日历添加事件的正确方向。

hnh*_*hnh 5

只是为了将 David 的评论变成这个问题的正确答案:这是一个很好的链接:Building a CalDAV client

要在 CalDAV 日历中创建事件,您需要使用 HTTP PUT 操作。以新事件的 iCalendar 作为请求正文。

喜欢:

PUT /home/meeting.ics HTTP/1.1
Host: ...
Content-Length: ...
Content-Type: text/calendar; charset=utf-8

BEGIN:VCALENDAR
BEGIN:VEVENT
UID:test123
SUMMARY:Test Event
DTSTART:20140920T080000Z
DTEND:20140920T170000Z
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)