Icloud日历由uid通过caldav检索事件

时间:2015-01-08 14:52:29

标签: ruby-on-rails calendar icloud webdav caldav

我试图通过caldav协议根据其UID检索特定的ICloud事件。

<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
  <D:getetag/>
  <C:calendar-data>
    <C:comp name="VCALENDAR">
      <C:prop name="VERSION"/>
      <C:comp name="VEVENT">
        <C:prop name="SUMMARY"/>
        <C:prop name="UID"/>
        <C:prop name="DTSTART"/>
        <C:prop name="DTEND"/>
        <C:prop name="DURATION"/>
        <C:prop name="RRULE"/>
        <C:prop name="RDATE"/>
        <C:prop name="EXRULE"/>
        <C:prop name="EXDATE"/>
        <C:prop name="RECURRENCE-ID"/>
      </C:comp>
      <C:comp name="VTIMEZONE"/>
    </C:comp>
  </C:calendar-data>
</D:prop>
<C:filter>
  <C:comp-filter name="VCALENDAR">
    <C:comp-filter name="VEVENT">
      <C:prop-filter name="UID">
        <C:text-match>$$EVENT_UID$$</C:text-match>
      </C:prop-filter>
    </C:comp-filter>
  </C:comp-filter>
</C:filter>

当我更换C:prop-filter name =&#34; UID&#34;通过C:prop-filter name =&#34; SUMMARY&#34;,请求可以正常使用204,但我尝试使用UID,我得到403 Forbidden。

2 个答案:

答案 0 :(得分:1)

iCloud不支持各种各样的日历查询请求。您可能会被困在首先下载整个集合。

答案 1 :(得分:0)

您用于发布请求的网址必须包含ics文件链接以及请求中的UID。