Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
无法以Java编程方式更新定期会议_Java_Outlook_Icalendar_Recurring - Fatal编程技术网

无法以Java编程方式更新定期会议

无法以Java编程方式更新定期会议,java,outlook,icalendar,recurring,Java,Outlook,Icalendar,Recurring,我创建了一个具有以下详细信息的定期会议 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 DTSTA

我创建了一个具有以下详细信息的定期会议

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
相同。我也增加了
序列。我还需要处理其他事情吗?

在Outlook中,主设备和异常的UID是不同的,但后者是从前者派生出来的


尝试将修改后的定期约会保存为Outlook中的ICS文件,以查看Outlook的功能。

在同一VEVENT组件中不能同时具有定期ID和RRULE

如果您想要构造一个简单的每周定期会议,那么只需删除RECURRENCE-ID属性

另一个问题是DTSTAMP属性与DTSTART对齐。因此,在第二个事件中,它早于第一个事件。DTSTAMP属性应反映构建和发送VEVENT的日期和时间。因此,如果您使用新信息更新事件,DTSTAMP应该比初始时间晚


只有在有定期会议时,才应使用RECURRENCE-ID,但有例外(例如,第三个实例的位置不同)。很好的例子可以在上找到。

按照您的建议尝试。Outlook正在修改时间并在日历中显示更新的时间。但为什么在编程时没有观察到相同的行为?您是否在记事本中打开Outlook创建的ICS文件,并将其与您的代码生成的内容进行比较?