打印重复事件的iCal格式

时间:2012-10-22 20:57:29

标签: icalendar rfc2445 rfc5545

我在这里阅读了这个答案,解释了如何输出预定项目的文件:

How can I use PHP to dynamically publish an ical file to be read by Google Calendar?

我的问题是重复活动的格式是什么?假设我想在每个星期一上午10点安排一次团队会议。重复计划的格式是什么?或者我是否需要在未来打印X个事件?

3 个答案:

答案 0 :(得分:3)

  

假设我想在每个星期一上午10点安排一次团队会议。重复计划的格式是什么?

 DTSTART:20121022T100000
 RRULE:FREQ=WEEKLY;BYDAY=MO

指定星期一上午10点的开始日期,RRULE部分指定每周重复一次。

您需要将其置于RFC 2445中指定的VEVENT中。

由于未指定时区,因此Google会假定您要将此活动上传到的日历的主要时区。

您无需指定计数或终止日期。 Google日历对您可以专攻的定期活动的实例数量有一些内部限制,但除非您的团队定期举行几个世纪的会议,否则您不应该遇到它。

答案 1 :(得分:2)

这种格式由RFC5545定义:http://tools.ietf.org/html/rfc5545

在您的情况下,您将只需要定义一个事件并使用FREQ属性(FREQ = WEEKLY)和COUNT属性(COUNT = X)

RRULE:FREQ = WEEKLY; BYDAY = MO; COUNT = X

有关详细信息,请参阅http://tools.ietf.org/html/rfc5545#section-3.3.10

答案 2 :(得分:1)

您可以使用RRULEFREQ属性来完成此操作,如RFC5545中所述。在你的情况下,它看起来像这样:

DTSTART:20121029T100000Z
RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20131028T110000Z

您还可以设置其他方式来限制出现次数(例如周期性事件的数量),或者让它永远重复。但是,如果你问我,为你的用户提供一个合理的限制而不是无限重复是更有礼貌的。