如何在Google Calendar API PHP中每隔2天/周/月/年创建重复事件

时间:2019-02-13 15:37:05

标签: php google-calendar-api

我想通过PHP中的Google Calendar API V3创建一个类似这样的Google日历事件,

每3天/周/月/年重复5个周期。

我已经检查了, https://developers.google.com/calendar/v3/reference/events/insert

但是如何添加这样的事件?有什么办法吗?

先谢谢了。

1 个答案:

答案 0 :(得分:0)

您要创建的是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天的RRULEFREQ=DAILY;UNTIL=20190229;INTERVAL=3。每3周将FREQ更改为WEEKLY,然后将UNTIL更改为多少个周期。