此问题的解决方案是在设置循环之前设置事件的时区。
require_once "./google-api-php-client-read-only/src/apiClient.php";
require_once "./google-api-php-client-read-only/src/contrib/apiCalendarService.php";
$event = new Event();
$event->setSummary('Event Name');
$event->setLocation('Event Address;City, State Zip);
$start = new EventDateTime();
$start->setDateTime('2011-12-25 10:00:00:000 -0050');
$start->setTimeZone('America/New_York');
$event->setStart($start);
$end = new EventDateTime();
$end->setDateTime('2011-12-25 13:00:00:000 -0050');
$end->setTimeZone('America/New_York');
$event->setEnd($end);
$event->setRecurrence(array('RRULE:FREQ=DAILY;UNTIL=20111229T130000Z;'));
$createdEvent = $service->events->insert('primary', $event);
它不适用于或不适用RRULE值。我怀疑格式是完全错误的。我在搜索答案的几个小时内没有找到任何结果,他们的php类文档很少,日历API的示例代码为零。 – clutterjoe
实际上,该字段的语法早于Google日历甚至PHP。见例如的iCalendar。 http://tools.ietf.org/html/rfc2445 –
尝试用“newReccurrence”(而不是'array')创建一个递归规则,然后以某种方式分配它,也许用setRecurrence。 –