Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Icalendar 对周期性全天事件的更改未从iCal发送_Icalendar_Caldav_Rrule - Fatal编程技术网

Icalendar 对周期性全天事件的更改未从iCal发送

Icalendar 对周期性全天事件的更改未从iCal发送,icalendar,caldav,rrule,Icalendar,Caldav,Rrule,我运行的是sabre CalDAV服务器,我使用Yosemite上的iCal作为客户端。现在,我在iCal中创建了一个全天重复事件,并使用Charles代理检查从iCal发送的请求主体。创建事件并发送正确的数据: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Apple Inc.//Mac OS X 10.10.1//EN CALSCALE:GREGORIAN BEGIN:VEVENT CREATED:20160404T203206Z UID:14C144D6-A8

我运行的是sabre CalDAV服务器,我使用Yosemite上的iCal作为客户端。现在,我在iCal中创建了一个全天重复事件,并使用Charles代理检查从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
但是,如果我更改重复事件的单个事件,并选择仅将更改应用于此事件,iCal会将旧日历数据发送回服务器,而不进行任何更改。如果我将更改应用于所有事件,则会发送正确的数据。如果我选择仅将更改应用于未来事件,它将正确更改旧事件并为未来事件创建新事件。但是,同样地,不会将单个事件的更改发送到服务器

这只适用于全天活动。定时事件运行正常。我用“count”或“until”创建rrule也没关系

如果我更改一次事件并从iCal导出日历,我也会获得正确的日历数据,尽管这些数据不会发送到服务器(不同的事件):

在那里,我终于可以看到具有正确的递归id的vevent

有什么想法吗?还有谁遇到过类似的问题?我不知道是什么原因造成的


提前谢谢

好吧,这一定是个日历错误。启用调试后,我发现以下错误:

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]
我将日历从版本8.0(2026)更新为版本8.0(2034.9),现在一切都按预期运行

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]