我在这里阅读了这个答案,它解释了如何输出计划项目的 ical 文件:
如何使用 PHP 动态发布 ical 文件以供 Google 日历读取?
我的问题是重复事件的 ical 格式是什么?假设我想在每周一上午 10 点安排一次团队会议。重复时间表的 ical 格式是什么?还是我需要在未来打印 X 个事件?
我在这里阅读了这个答案,它解释了如何输出计划项目的 ical 文件:
如何使用 PHP 动态发布 ical 文件以供 Google 日历读取?
我的问题是重复事件的 ical 格式是什么?假设我想在每周一上午 10 点安排一次团队会议。重复时间表的 ical 格式是什么?还是我需要在未来打印 X 个事件?
ical 格式由 RFC5545 定义:https ://www.rfc-editor.org/rfc/rfc5545
在您的情况下,您只需要定义一个事件并使用 FREQ 属性(FREQ=WEEKLY)和 COUNT 属性(COUNT=X)
RRULE:FREQ=每周;BYDAY=MO;COUNT=X
有关详细信息,请参阅https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10 。
假设我想在每周一上午 10 点安排一次团队会议。重复时间表的 ical 格式是什么?
DTSTART:20121022T100000
RRULE:FREQ=WEEKLY;BYDAY=MO
指定星期一上午 10 点的开始日期,并且 RRULE 部分指定它每周重复一次。
您需要将其放入 RFC 2445 中指定的 VEVENT 中。
由于未指定时区,Google 将假定您上传此活动的日历的主要时区。
您无需指定计数或终止日期。Google 日历对您可以专门处理的重复事件的实例数量有一些内部限制,但除非您的团队几个世纪以来定期开会,否则您永远不应该遇到它。
您可以使用RRULE
和FREQ
属性来完成此操作,如RFC5545中所述。在您的情况下,它看起来像这样:
DTSTART:20121029T100000Z
RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20131028T110000Z
您还可以设置其他方式来限制发生次数(如重复事件的数量)或让它永远重复。然而,如果你问我,设置一个合理的限制而不是无限重复对你的用户来说更礼貌。