Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何为周期性事件编写ICS文件?_Date_Time_Calendar_Icalendar - Fatal编程技术网

Date 如何为周期性事件编写ICS文件?

Date 如何为周期性事件编写ICS文件?,date,time,calendar,icalendar,Date,Time,Calendar,Icalendar,我想创建一个ICS文件来描述一个重复发生的事件,该事件在2016年全年每周一UTC 13:00到14:00之间发生。ICS文件应该可以通过Google日历导入。我发现很难在网上找到和理解关于如何构建这样一个文件的细节。我目前拥有的是一种创建包含单个事件列表的文件的方法,但我希望在文件中定义事件的规则。我现在有以下几点: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SERN//INDICO//EN BEGIN:VEVENT SUMMARY:Software Meet

我想创建一个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

编辑:以下由提供,我编写了以下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

您需要将RRULE属性添加到事件中。对于2016年的重复周一活动,您需要在活动中使用以下行:

DTSTART:20160104T130000Z

DTEND:20160104T140000Z

RRULE:FREQ=每周;直到=20170101T000000Z

您可以在此处找到有关RRULE语法的详细信息:

您可能还发现在测试期间验证icalendar提要非常有用,以确保Google Calendar不会出现问题。以下是一个有用的验证工具:


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

非常感谢您的解决方案,它似乎运行良好。也谢谢你的建议,非常有帮助!