2016-04-05 2 views
0

Я запускаю сервер CalDAV сабля, и я использую iCal на Yosemite в качестве клиента. Теперь я создаю повторное событие allday в iCal и использую Charles Proxy для проверки тела запроса, который отправляется из iCal. Создание события он посылает правильные данные:Изменения в повторяющихся событиях allday, не отправленных из iCal

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//Apple Inc.//Mac OS X 10.10.1//EN 
CALSCALE:GREGORIAN 
BEGIN:VEVENT 
CREATED:20160404T203206Z 
UID:14C144D6-A872-4D24-91C0-783A9979BB9E 
RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=1 
DTEND;VALUE=DATE:20160409 
TRANSP:TRANSPARENT 
SUMMARY:Repeat 
DTSTART;VALUE=DATE:20160404 
DTSTAMP:20160404T203206Z 
SEQUENCE:0 
BEGIN:VALARM 
X-WR-ALARMUID:A807798B-DE16-4E62-86E9-C204A2B80F76 
UID:A807798B-DE16-4E62-86E9-C204A2B80F76 
TRIGGER;VALUE=DATE-TIME:19760401T005545Z 
ACTION:NONE 
END:VALARM 
END:VEVENT 
END:VCALENDAR 

Ответ:

HTTP/1.1 201 Created 
Date: Mon, 04 Apr 2016 20:32:19 GMT 
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1j PHP/5.6.3 mod_perl/2.0.8-dev Perl/v5.16.3 
X-Powered-By: PHP/5.6.3 
X-Sabre-Version: 3.0.8 
Content-Length: 0 
ETag: "55c6a353f278653fdd61387395c274df" 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html; charset=UTF-8 

Но если изменить одно вхождение повторяющегося события и выбрать для применения только изменений в это происшествие, ческий Посылает старые календарные данные обратно на сервер без каких-либо изменений. Если я применяю изменения ко всем вхождениям, отправляются правильные данные. Если я решила применить изменения только к будущим событиям, он правильно изменит старое событие и создаст новое событие для будущих событий. Но опять же, никакие изменения в одном случае не отправляются на сервер.

Это происходит только для событий allday. Временные события работают нормально. Это также не имеет значения, если я создаю rrule с «count» или «until».

Если я меняю одно вхождение и экспортировать свой календарь с ческих я также получить правильный календарь-данные, хотя эти данные не передаются на сервер (разные события):

BEGIN:VCALENDAR 
METHOD:PUBLISH 
VERSION:2.0 
X-WR-CALNAME:XXX 
X-WR-CALDESC: 
X-APPLE-CALENDAR-COLOR:#FF9500 
X-WR-TIMEZONE:Europe/Berlin 
CALSCALE:GREGORIAN 
BEGIN:VEVENT 
CREATED:20160405T063102Z 
UID:68C23C1E-371C-4799-9139-04F0F8FE6F88 
RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=4 
DTEND;VALUE=DATE:20160409 
TRANSP:TRANSPARENTSUMMARY:hhhhh 
DTSTART;VALUE=DATE:20160404 
DTSTAMP:20160405T063102Z 
SEQUENCE:0 
END:VEVENT 
BEGIN:VEVENT 
CREATED:20160405T063102Z 
UID:68C23C1E-371C-4799-9139-04F0F8FE6F88 
DTEND;VALUE=DATE:20160421 
TRANSP:TRANSPARENT 
SUMMARY:hhhhh 
DTSTART;VALUE=DATE:20160418 
DTSTAMP:20160405T063102Z 
SEQUENCE:0 
RECURRENCE-ID;VALUE=DATE:20160418 
END:VEVENT 
END:VCALENDAR 

Там, я могу наконец, увидеть ventent с правильным идентификатором повторения.

Любые идеи? Кто-нибудь другой столкнулся с подобной проблемой? Я не знаю, что могло бы вызвать это ...

Заранее благодарим!

ответ

0

Хорошо, это, должно быть, ошибка в календаре. После включения отладки я обнаружил эту ошибку:

Apr 6 12:20:11 XXX.local CalendarAgent[229]: [com.apple.calendar.store.log.ICS] [CaliCalTranslator: Event 97323C3B-753D-46E5-830E-E182BEAA5E0D has invalid instance on date 2016-04-11 00:00:00 +0000. Filtering] 

I обновленный календарь, начиная с версии 8.0 (2026) до версии 8.0 (2034.9), и теперь все работает, как ожидалось.

Смежные вопросы