为课程时间表创建.ics文件

时间:2018-07-13 11:52:06

标签: google-calendar-api icalendar

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

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日历中。为什么?如果我删除了第2类的事件,则icalendar validator不会显示任何错误。这两个事件也没有任何错误(在验证器中)。

任何指向正确方向的指针都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

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

在检查了是,没有更改UID = 0的UID后,我更改了文件中的UID。然后加载了两个事件。

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