2011-11-30 175 views
1

我是新来的谷歌API(V3),我想创建一个定期事件。谷歌日历API v3 setRecurrence

我可以授权用户并创建一个事件,但重复只是不会采取。我不确定如何将递归数组传递给方法setRecurrence()。

$event->setRecurrence(array('RRULE'=>'RRULE:FREQ=DAILY;UNTIL=20111205T000000Z')); 

任何人都知道这个答案吗? TIA!

回答

0

此问题的解决方案是在设置循环之前设置事件的时区。

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); 
0

为什么RRULE:再次值?值应格式化为http://tools.ietf.org/html/rfc2445

+0

它不适用于或不适用RRULE值。我怀疑格式是完全错误的。我在搜索答案的几个小时内没有找到任何结果,他们的php类文档很少,日历API的示例代码为零。 – clutterjoe

+0

实际上,该字段的语法早于Google日历甚至PHP。见例如的iCalendar。 http://tools.ietf.org/html/rfc2445 –

+0

尝试用“newReccurrence”(而不是'array')创建一个递归规则,然后以某种方式分配它,也许用setRecurrence。 –