【问题标题】:How can an ICS file be written for a recurring event?如何为重复事件编写 ICS 文件?
【发布时间】:2016-09-12 17:06:41
【问题描述】:

我想创建一个 ICS 文件来描述重复事件,该事件在 2016 年全年世界标准时间每周一 13:00 到 14:00 发生。ICS 文件应该可以通过 Google 日历导入。我发现很难在网上找到和理解有关如何构建这样一个文件的详细信息。我目前拥有的是一种创建包含单个事件列表的文件的方法,但我希望为文件中定义的事件制定规则。我现在有类似以下内容:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SERN//INDICO//EN
BEGIN:VEVENT
SUMMARY:Software Meeting
DTSTART;VALUE=DATE-TIME:20160818T150000Z
DTEND;VALUE=DATE-TIME:20160818T160000Z
DTSTAMP;VALUE=DATE-TIME:20160912T165700Z
UID:indico-event-563636@sern.ch
DESCRIPTION:https://indico.sern.ch/event/999999/
LOCATION:42-3-002 (SERN)
URL:https://indico.sern.ch/event/999999/
END:VEVENT
BEGIN:VEVENT
SUMMARY:Software Meeting
DTSTART;VALUE=DATE-TIME:20160825T150000Z
DTEND;VALUE=DATE-TIME:20160825T160000Z
DTSTAMP;VALUE=DATE-TIME:20160912T165700Z
UID:indico-event-565483@sern.ch
DESCRIPTION:https://indico.sern.ch/event/999999/
LOCATION:42-3-002 (SERN)
URL:https://indico.sern.ch/event/999999/
END:VEVENT
END:VCALENDAR

编辑:在zcontent 提供的the solution 之后,我编写了以下似乎可以成功运行的 ICS 文件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SERN//INDICO//EN
BEGIN:VEVENT
SUMMARY:Software Meeting
TZID:Europe/Zurich
DTSTART:20150202T170000
DTEND:20150202T180000
DTSTAMP:20150202T170000
RRULE:FREQ=WEEKLY;UNTIL=20380119T000000
UID:indico-event-565483@sern.ch
DESCRIPTION:https://indico.sern.ch/event/999999/
LOCATION:42-3-002 (SERN)
URL:https://indico.sern.ch/event/999999/
END:VEVENT
END:VCALENDAR

【问题讨论】:

    标签: date time calendar icalendar


    【解决方案1】:

    您需要为事件添加一个 RRULE 属性。对于 2016 年重复的星期一活动,您需要在活动中包含这样的行:

    DTSTART:20160104T130000Z

    DTEND:20160104T140000Z

    RRULE:FREQ=WEEKLY;UNTIL=20170101T000000Z

    您可以在此处找到有关 RRULE 语法的详细信息: http://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html

    您可能还会发现在测试期间验证您的 icalendar 提要很有用,以确保 Google 日历不会出现问题。这是一个有用的验证工具: http://icalendar.org/validator.html

    免责声明:我认为 icalendar 验证器工具是互联网上最好的,但我也写了它:-)

    【讨论】:

    • 非常感谢您的解决方案,它似乎运作良好。也感谢您提供非常有用的建议iCalendar validator
    猜你喜欢
    • 2017-04-14
    • 2022-11-10
    • 2021-02-27
    • 2017-12-09
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多