将多事件ICalendar文件添加到Google日历

kpg*_*kpg 6 icalendar gmail google-calendar-api

我创建了一个具有多个(10)事件的ICalendar文件。该文件在此处此处正确验证。

它还可以在OSX的“日历”应用程序中正确打开。

在Gmail中,第一个事件可以正确显示,并带有添加到日历的选项,但其他事件不会出现。如果我选择添加事件,则它将正确添加。

如果我尝试将文件导入到Google日历,则表示已导入3个事件,但未显示任何内容。

有什么建议吗?

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//MY-ID//session-schedule//EN
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8CI9Icqwq6Ayia@bla.com
SUMMARY:Session 1
DTSTART:20150701T150000Z
DURATION:PT45M
LOCATION:Cape Town\, Western Cape\, South Africa
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8EWdEOQ8KgO31M@bla.com
SUMMARY:Session 2
DTSTART:20150708T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8FNYdYmOOrdnzH@bla.com
SUMMARY:Session 3
DTSTART:20150715T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8GGHeq8W_2DWIT@bla.com
SUMMARY:Session 4
DTSTART:20150722T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8HMbzlzz45FPbL@bla.com
SUMMARY:Session 5
DTSTART:20150729T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8LdTfIrCf24TLd@bla.com
SUMMARY:Session 6
DTSTART:20150805T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8RlNVqPhufdmmm@bla.com
SUMMARY:Session 7
DTSTART:20150812T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8_vF08HTSQmRfD@bla.com
SUMMARY:Session 8
DTSTART:20150819T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8gi72om3rWKh0Q@bla.com
SUMMARY:Session 9
DTSTART:20150826T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150630T131326Z
UID:-JsQiE8id1V8OgU4Qrk7@bla.com
SUMMARY:Session 10
DTSTART:20150902T150000Z
DURATION:PT45M
STATUS:CONFIRMED
ORGANIZER;CN=Joe Soap:MAILTO:bla@gmail.com
ATTENDEE:CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Fred Bloggs:MAILTO:bla@gmail.com
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

Jo *_*o P 5

我一直在努力解决同样的问题,并有一些发现要报告,但还没有一个可靠的解决方案......

当 .ics 附件具有mime_typeapplication/ics,gmail 会在灰色的“此消息中的事件”框中显示所有事件,如下所示 - 屏幕截图 1

然而,其中一个mime_type显示text/calendar了更光滑的 gmail 事件框,如下所示 - 屏幕截图 2

slicker 选项无法显示多个事件,因此我根据 .ics 中的事件数量设置 mime_type

我仍然遇到的问题是 gmail 似乎只偶尔显示灰色的多个事件框,但我无法找出模式!有人知道为什么吗?

  • 最近有些事情发生了变化。一位客户告诉我们多事件“application/ics”不再显示多事件。我们还没有调查过,所以如果我们发现任何有趣的事情,我们会在这里更新结果。 (2认同)

小智 0

我无法判断您是否将这些行正确编码为单独的属性。您提供的 iCalendar 在快速通行证上看起来不错,但有两件事除外:

1:每个属性的末尾都没有 CRLF。这可能就是您发布 iCalendar 的方式,并且实际上每行末尾都有一个 CRLF。

2:您在METHOD:PUBLISH中包含了ATTENDEE,但 RFC 2446 不允许这样做。

您还应该包含一个SEQUENCE 属性以使更新正常工作,但是如果它是第一个版本,则将其关闭也可以。

您是否尝试过一次简单地导入一个来看看是否有效?