【问题标题】:Add a multi-event ICalendar file to Google Calendar将多事件 ICalendar 文件添加到 Google 日历
【发布时间】:2015-06-30 14:36:06
【问题描述】:

我创建了一个包含多个 (10) 事件的 ICalendar 文件。该文件正确验证herehere

它还在 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

【问题讨论】:

标签: gmail google-calendar-api icalendar


【解决方案1】:

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

当 .ics 附件的 mime_typeapplication/ics 时,gmail 会在灰色的“此邮件中的事件”框 like this - screenshot 1 中显示所有事件。

但是,mime_typetext/calendar 会显示更流畅的 gmail 事件框 like this - screenshot 2

slicker 选项不能显示多个事件,所以我根据 .ics 中的事件数量设置 mime_type

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

【讨论】:

  • 对于您 Jo P,多偶数选项在 Gmail 中是否仍然有效?我尝试将 mime 类型设置为文本/日历,但我仍然获得单个邀请视图。
  • 最近发生了一些变化。一位客户告诉我们多事件application/ics 不再显示多事件。我们还没有调查,所以如果我们发现任何有趣的事情会在这里更新结果。
  • 如果我单独附加日历邀请,我只能显示多事件样式视图。这样在 Gmail 网络界面中就可以了,但是像苹果日历这样的其他程序必须单独添加每个邀请。
  • 如果这对任何人重新开始工作,有什么更新吗?在 gmail 中遇到同样的问题并尝试修复 mime 类型。
【解决方案2】:

ics 文件可能没有任何问题。我假设您正在尝试将此 ics 文件邮寄到 gmail 帐户。在您的 gmail ID 中看起来像这样。当您尝试“添加到日历”链接时,它只会将 1 个事件添加到日历中。

我认为 gmail 被编程为仅读取 ics 文件中的第一个事件。尝试通过打开谷歌日历设置并选择“导入和导出”来导入 ics 文件。这应该会将所有事件添加到您的日历中。

但我猜你不想指示用户打开日历设置。奇怪的是,我尝试在邮件中发送 2 个 ics 文件。一个有 2 个事件,另一个有 1 个事件。在这种情况下,它读取了所有 3 个事件并允许我将其添加到我的日历中。所以我猜想解决方法是发送多个 ics 文件并发送所有事件。或者至少创建 2 个 ics 文件,其中 1 个可以充当虚拟对象,其他可以拥有所有事件。

【讨论】:

    【解决方案3】:

    有用的链接以防有人仍在阅读此内容 - 来自 GCalToolkit 的产品专家的最新回答:

    https://support.google.com/calendar/thread/20792476/import-multiple-calendar-vevent-in-one-ics-with-gmail-ics-attachment?hl=en

    简而言之,鉴于“最近的垃圾邮件问题”,Google 日历故意破坏了这一合法的 RFC 5545 功能。

    他们锁定了线程,因此阻止了任何会询问这有什么意义的 cmets?

    为什么有正当理由发布连续五天占用不同时间跨度的“程序”的人需要分解五个单独的 .ics 文件?为什么 GMail 不只是提出一个额外的提示“这将在您的日历中添加 5 个事件。您确定吗?”如果他们担心垃圾邮件发送者?为什么发送五个 .ics 文件而不是一个,“垃圾邮件更少”?

    因此,我们不能只发送单个 .ics,上面写着“这是我们的 5 天计划”,Apple、Microsoft 和 Google 日历本身完全接受它实际上进入其设置-> 导入,而不是尝试“从 GMail”添加。而如果某件事垃圾邮件,那么即使添加第一个事件也会添加一个比应添加的事件更多的事件。这就是确认提示的来源。

    无论如何,不​​要向合唱团讲道......如果您希望 GCalToolkit 专家自己澄清,以上是链接。

    【讨论】:

      【解决方案4】:

      我不知道您是否将这些行正确编码为单独的属性。您提供的 iCalendar 在快速通过时看起来不错,除了 2 件事:

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

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

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

      您是否尝试过一次只导入一个以查看是否可行?

      【讨论】:

        【解决方案5】:

        如果你有不止一个事件,你必须将它们分隔在最简单的 2 个文件 ics 上,它会起作用。

        【讨论】:

          猜你喜欢
          • 2011-11-06
          • 1970-01-01
          • 1970-01-01
          • 2020-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多