【发布时间】:2019-07-07 12:12:28
【问题描述】:
我想通过 PHP 中的 Google Calendar API V3 创建一个这样的谷歌日历活动,
每 3 天/周/月/年重复一次,共 5 个周期。
我已经检查过了, https://developers.google.com/calendar/v3/reference/events/insert
但是如何添加这样的事件呢?有什么办法吗?
提前致谢。
【问题讨论】:
我想通过 PHP 中的 Google Calendar API V3 创建一个这样的谷歌日历活动,
每 3 天/周/月/年重复一次,共 5 个周期。
我已经检查过了, https://developers.google.com/calendar/v3/reference/events/insert
但是如何添加这样的事件呢?有什么办法吗?
提前致谢。
【问题讨论】:
您要创建的是recurring event。创建重复事件类似于creating 一个常规(单个)event 与事件资源的recurrence 字段集。想了解更多关于重复规则,你可以访问这个link。
重复事件的一个例子是:
$event = new Google_Service_Calendar_Event();
$event->setSummary('Appointment');
$event->setLocation('Somewhere');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2011-06-03T10:00:00.000-07:00');
$start->setTimeZone('America/Los_Angeles');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2011-06-03T10:25:00.000-07:00');
$end->setTimeZone('America/Los_Angeles');
$event->setEnd($end);
$event->setRecurrence(array('RRULE:FREQ=WEEKLY;UNTIL=20110701T170000Z'));
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('attendeeEmail');
这与单个事件的不同之处在于以下行:
$event->setRecurrence(array('RRULE:FREQ=WEEKLY;UNTIL=20110701T170000Z'));
这条线使单个事件每周再次发生,直到 7 月 1 日。
另一个示例:从 2015 年 6 月 1 日开始的全天活动,整个月每 3 天重复一次,不包括 6 月 10 日,但包括 6 月 9 日和 11 日
...
"start": {
"date": "2015-06-01"
},
"end": {
"date": "2015-06-02"
},
"recurrence": [
"EXDATE;VALUE=DATE:20150610",
"RDATE;VALUE=DATE:20150609,20150611",
"RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"
],
…
对于您的情况,您可以创建一个重复事件,其中每 3 天有一个 RRULE 或 FREQ=DAILY;UNTIL=20190229;INTERVAL=3。每 3 周将 FREQ 更改为 WEEKLY 并更改 UNTIL 以调整周期数。
【讨论】: