d3p*_*3pd 5 time icalendar calendar date
我想创建一个描述周期性事件的ICS文件,该事件发生在2016年全年的每个UTC时间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
Run Code Online (Sandbox Code Playgroud)
编辑:按照zcontent提供的解决方案,我编写了以下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
Run Code Online (Sandbox Code Playgroud)
小智 5
您将需要向事件添加RRULE属性。对于2016年重复的星期一活动,您需要在活动中输入以下内容:
DTSTART:20160104T130000Z
DTEND:20160104T140000Z
规则:FREQ =每周;直到= 20170101T000000Z
您可以在此处找到有关RRULE语法的详细信息:http ://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html
您可能还会发现在测试过程中验证icalendar feed很有用,以确保Google日历不会出现问题。这是一个有用的验证工具:http : //icalendar.org/validator.html
免责声明:我认为icalendar验证程序工具是Internet上最好的工具,但我也写了它:-)