如何更新ICS日历会议?

use*_*521 10 icalendar calendar google-calendar-api

我正在尝试生成.ics文件,我想将其作为附件发送给客户.出于某种原因,如果重新安排会议,则不会在Google日历中或在Mac OS上的日历应用中更新会议.

这是一个带SEQUENCE的meeting.ics:1:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//example.com//Appointment v1.0//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:citfslfcd0001hx61sjcqqp4q
SEQUENCE:1
DTSTAMP:20160923T151743
DTSTART:20160923T211500
ATTENDEE:;CN="user1";RSVP=FALSE:mailto:user1@example.com
ATTENDEE:;CN="user2";RSVP=FALSE:mailto:user2@example.com
LOCATION:Sweden
DESCRIPTION:Meeting
SUMMARY:Meeting
CLASS:CONFIDENTIAL
CATEGORIES:BUSINESS
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

在这里更新了SEQUENCE:2和DTSTART的会议,一天后:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//example.com//Appointment v1.0//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:citfslfcd0001hx61sjcqqp4q
SEQUENCE:2
DTSTAMP:20160923T161267
DTSTART:20160924T211500
ATTENDEE:;CN="user1";RSVP=FALSE:mailto:user1@example.com
ATTENDEE:;CN="user2";RSVP=FALSE:mailto:user2@example.com
LOCATION:Sweden
DESCRIPTION:Meeting
SUMMARY:Meeting
CLASS:CONFIDENTIAL
CATEGORIES:BUSINESS
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
  1. 当我在谷歌日历中打开第一个文件(来自电子邮件附件)或Mac会议中的日历应用程序时,会按预期添加到日历中.

  2. 当我在谷歌日历中打开第二个文件时,会创建具有新会议日期的重复会议.

  3. 当我在日历应用程序中打开第二个文件然后......没有任何反应 - 第一次会议只是在日期单元格中"跳出",但没有任何反应......

那些ics文件可能有什么问题?


尽管gmail识别它(.ics附件)并且显示消息"此会议已被取消",我也无法取消会议.

以下是我尝试更新活动时发生的情况的屏幕截图:

在此输入图像描述

当我尝试取消会议时,gmail显示了什么(显示"会议已被波兰语取消")(但事件未在谷歌日历中删除/更新):

在此输入图像描述

Mic*_*ael 2

您的 ATTENDEE 属性看起来不正确。由于属性具有参数,因此属性名称后面的冒号字符不应出现。

例如这个:

ATTENDEE:;CN="user1";RSVP=FALSE:mailto:user1@example.com
Run Code Online (Sandbox Code Playgroud)

应该是这样的:

ATTENDEE;CN="user1";RSVP=FALSE:mailto:user1@example.com
Run Code Online (Sandbox Code Playgroud)

  • 那不是问题。问题仍然存在:(。您可以自己尝试 - 只需发送给自己meeting1.ics,然后从gmail单击“添加到日历”。然后发送meeting2.ics(包含更新的日期和顺序),然​​后再次在gmail中单击“添加到日历” “ - 你会看到两个事件...... (3认同)