【问题标题】:Creating a .ics file for classes schedule为课程表创建 .ics 文件
【发布时间】:2018-07-14 12:09:47
【问题描述】:

我目前有一个 .ics 文件,将用作我的课程表。它应该包含所有的课程、它们的持续时间和开始时间,并且每周重复一次(但是,如果 X 班在周一和周二的 9:00 以及周四的 10:00,这将产生 2 个具有不同 UID 的单独事件,但相同的摘要)直到 Y 日期。在对此进行测试并将其添加到 Google 日历后,会出现错误:“添加了 Z of [TOTAL] 个事件”。我设法通过以下事件重现了错误(在这种情况下,“添加了 2 个事件中的 1 个”):

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//2 2017/2018//PT
BEGIN:VEVENT
UID:0
DTSTAMP:20180713T132719
DTSTART:20180219T100000
SUMMARY:Class 1
LOCATION:Location 1
DURATION:PT1H30M
RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20180601T000000;WKST=SU;BYDAY=MO
END:VEVENT
BEGIN:VEVENT
UID:11
DTSTAMP:20180713T132719
DTSTART:20180221T080000
SUMMARY:Class 2
LOCATION:Location 2
DURATION:PT1H30M
RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20180601T000000;WKST=SU;BYDAY=WE
END:VEVENT
END:VCALENDAR

只有第二个事件被正确添加到 Google 日历。为什么?如果我去掉 Class 2 的事件,icalendar validator 不会显示错误。 2 个事件也没有任何错误(在验证器中)。

非常感谢任何指向正确方向的指针。

【问题讨论】:

    标签: google-calendar-api icalendar


    【解决方案1】:

    将您的 UID 更改为保证唯一(或至少不为零)的东西。见https://www.kanzaki.com/docs/ical/uid.html

    在确认没有加载 UID=0 的 UID 后,我更改了您文件中的 UID。然后加载这两个事件。

    对于我的 ics 文件,我使用网站 url 和唯一标识符(例如,对于 wordpress 网站,它是添加到 wp url 的帖子 ID)

    【讨论】:

    • 这解决了这个问题。我尝试使用 Linux 命令行实用程序“uuidgen”生成 UID,Google 确实立即识别了所有内容。谢谢!
    猜你喜欢
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 2022-01-18
    • 1970-01-01
    • 2018-02-12
    相关资源
    最近更新 更多