如何从 iCalendar 源访问事件?

How do I access events from an iCalendar feed?

我试图理解 iCalendar 提要并通读了规范 (RFC 5546),我想我会尝试简单地从 public iCalendar 提要中请求事件。

我运行试图从Google的public天气日历中获取天气事件列表:

curl -X GET https://calendar.google.com/calendar/ical/p%23weather%40group.v.calendar.google.com/public/basic.ics

我收到了这样的回复:

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:UTC
END:VCALENDAR

但没有事件数据。我是否误解了如何从 iCalendar 网址检索数据?我怎样才能像这样从 iCalendar 提要访问事件数据?

您选择的日历似乎是空的,因为将其重新导入 Google 日历将进行验证。使用其他日历之一尝试相同的方法,例如一年中的第几天,您应该会按预期看到事件:

curl -X GET https://calendar.google.com/calendar/ical/%23daynum%40group.v.calendar.google.com/public/basic.ics

您链接到的规范适用于 iTiP,这是一种支持事件安排的协议,例如创建或删除新事件。您引用的日历输出符合规范,因为它包含一个 PUBLISH 方法,这意味着输出只是简单地列出事件,而不需要代表客户端执行任何操作。这表明日历输出是完整的,即不是某种增量更新。

是的,正如 tmw 所说,那个 ics 提要是空的。

如果您想要一个包含事件的供稿进行测试,这是一个有趣的供稿: 古怪的假期(全天活动):https://www.google.com/calendar/ical/0bajvp6gevochc6mtodvqcg9o0%40group.calendar.google.com/public/basic.ics

这个有悉尼的月相 https://www.google.com/calendar/ical/ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com/public/basic.ics

如果你想要一个有时间的日历,创建你自己的 'extra' google 日历或者找一个 类 有 ics feed 的网站。