我创建了一个定期会议,其中包含以下详细信息。
BEGIN:VCALENDAR
PRODID:-//XYZ//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ORGANIZER:MAILTO:a@a.ins
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:myMailId@abc.com
RECURRENCE-ID:20150511T093000Z
CLASS:PUBLIC
STATUS:CONFIRMED
DTSTART:20150511T093000Z
DTEND:20150511T094500Z
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;INTERVAL=1;COUNT=5
LOCATION:conference-room
TRANSP:OPAQUE
SEQUENCE:1
UID:tlc6006OJ52003
DTSTAMP:20150511T093000Z
ACTION:DISPLAY
DESCRIPTION:sample
SUMMARY:testing
PRIORITY:5
BEGIN:VALARM
TRIGGER:-PT15M
REPEAT:3
DURATION:PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
我尝试通过更改时间来更新同一次定期会议:
原始开始时间:20150511T093000Z
原始结束时间:20150511T094500Z
更新开始时间:20150511T084500Z
更新结束时间:20150511T091500Z
以下是ICS的更新值
BEGIN:VCALENDAR
PRODID:-//XYZ//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ORGANIZER:MAILTO:a@a.ins
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:myMailId@abc.com
RECURRENCE-ID:20150511T084500Z
CLASS:PUBLIC
STATUS:CONFIRMED
DTSTART:20150511T084500Z
DTEND:20150511T091500Z
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;INTERVAL=1;COUNT=5
LOCATION:conference-room
TRANSP:OPAQUE
SEQUENCE:2
UID:tlc6006OJ52003
DTSTAMP:20150511T084500Z
ACTION:DISPLAY
DESCRIPTION:sample
SUMMARY:testing
PRIORITY:5
BEGIN:VALARM
TRIGGER:-PT15M
REPEAT:3
DURATION:PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
但是我的日历没有更新到新的时间。它仍然显示我的Outlook日历中的旧详细信息。我应该如何处理RECURRENCE-ID
财产?我觉得这是在创造问题。 UID
对于两次会议都是相同的。我也增加了SEQUENCE
。我应该处理其他事吗?
答案 0 :(得分:2)
您不能在同一个VEVENT组件中同时拥有RECURRENCE-ID和RRULE。
如果您想要构建的是一个简单的每周定期会议,那么只需删除RECURRENCE-ID属性。
另一个问题是您的DTSTAMP属性与DTSTART对齐。因此,在第二个事件中,它早于第一个事件。 DTSTAMP属性应反映构建和发送VEVENT的日期和时间。因此,如果您使用新信息更新活动,则DTSTAMP应该在初始时间之后。
只有在异常的定期会议中(例如,第三个实例具有不同的位置),才应使用RECURRENCE-ID。 http://tools.ietf.org/html/rfc5546#section-4.4.8提供了很好的例子。
答案 1 :(得分:0)
在Outlook中,主和异常的UID是不同的,但后者来自前者。
尝试将修改后的定期约会保存为Outlook中的ICS文件,以查看Outlook的功能。