2017-01-23 87 views
0
<C:calendar-query xmlns:D='DAV:' 
       xmlns:C='urn:ietf:params:xml:ns:caldav'> 
            <D:prop> 
             <D:getetag/> 
           <C:calendar-timezone xmlns:D='DAV:' xmlns:C='urn:ietf:params:xml:ns:caldav'></C:calendar-timezone> 
             <C:calendar-data> 
             <C:expand start='20170116T031008Z' 
               end='20170131T031008Z'/> 
             <C:comp name='VCALENDAR'> 
              <C:prop name='VERSION'/> 
              <C:comp name='VEVENT'> 
              <C:prop name='SUMMARY'/> 
              <C:prop name='DESCRIPTION'/> 
              <C:prop name='STATUS'/> 
               <C:prop name='TRANSP'/> 
               <C:prop name='ATTENDEE'/> 
              <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> 
             </C:calendar-data> 
            </D:prop> 
            <C:filter> 
     <C:comp-filter name='VCALENDAR'> 
     <C:comp-filter name='VEVENT'> 
      <C:time-range start='20170116T031008Z' 
         end='20170131T031008Z'/> 
     </C:comp-filter> 
     </C:comp-filter> 
    </C:filter> 
            </C:calendar-query> 

嗨檢索,我使用的CalDAV擴展檢索的iCloud日曆繁忙時間(由時間範圍)。我正在使用帶有「REPORT」方法的日曆查詢。它使XML在該時間範圍內的所有日曆都有繁忙的時間。但有時它不會給特定日曆帶來繁忙的時間。假設我有3個日曆,所以有時它會爲所有3個日曆提供繁忙時間,有時僅爲2個日曆提供繁忙時間(通過保留相同日曆)。如果我重試繁忙,那麼它會在7-8重試後給出繁忙時間。但有時候甚至在7-8次重試後都不會提供。發生什麼事?有時忙的時候不是從iCloud中(使用的CalDAV)爲特定的日曆

+0

嘿,有人能幫我解決嗎?爲什麼某些日曆的活動未被檢索? –

+0

對於某些日曆,忙不會被拉。 –

回答

0

我沒有找到它爲什麼發生的原因。但是我已經改變了繁忙時間檢索的過程,以便從所有日曆帶來繁忙的時間。以前,我正在向URL - https://PXX-caldav.icloud.com/token/calendars發送此請求,該請求對於某些特定的日曆不一致。

新流程 - :

第1步:擊中https://PXX-caldav.icloud.com/token/calendars/calendarId這給你的時間範圍內的所有事件的網址,日曆(對於那些也爲我憎惡埃及人,不能將同一請求檢索繁忙時間)。在這裏,它通過id爲calendarId的日曆(日曆的ID)提供事件。它給了我下面的XML xml - :

<href>/token/calendars/calendarId/event1Id.ics</href> 
<href>/token/calendars/calendarId/event2Id.ics</href> 
<href>/token/calendars/calendarId/event3Id.ics</href> 

現在你必須解析XML檢索所有的網址。

第2步:之後,你有所有的網址,你必須擊中具有這些網址的單個多點獲取請求,在同一網址從這些網址檢索數據並顯示爲繁忙時間。

URL -: https://PXX-caldav.icloud.com/token/calendars/calendarId 
Request -: 
<C:calendar-multiget 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='DESCRIPTION'/> 
                  <C:prop name='STATUS'/> 
                  <C:prop name='TRANSP'/> 
                  <C:prop name='ATTENDEE'/> 
                  <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> 
               </C:calendar-data> 
              </d:prop><d:href>/token/calendars/calendarId/event1Id.ics</d:href> 
    <d:href>/token/calendars/calendarId/event2Id.ics</d:href> 
    <d:href>/token/calendars/calendarId/event3Id.ics</d:href> 
             </C:calendar-multiget> 

它給你所有三個事件的數據。這有助於您從每個日曆中檢索繁忙時間。如果您必須從多個日曆中檢索事件,則必須爲每個日曆重複這兩個步驟。

相關問題