早上好,
我正在创建一个与 Google 日历同步的日历,但我无法重复查看 Google 日历的事件。我认为事件“重复发生”的领域是一个受保护的领域。但我不知道如何获取已保存事件的字段。
编辑:代码:
$params = array(
'orderBy' => 'startTime',
'singleEvents' => 'true',
'timeMin' => date(DateTime::ATOM),
);
$listarEventos = $service->events->listEvents($calendar_id, $params);
foreach ($listarEventos['items'] as $i){
echo $i->recurrence;
}
如果我尝试打印事件的内容,它会向我显示一个空字段重复,并且我已经证明它是重复出现的。
谢谢!
如果当前事件不是拥有重复规则的原始事件,则它不包含自己的“重复”字段副本。相反,“recurringEventId”字段中将引用原始事件。
如果您随后获取引用的事件,您将找到重复规则。
例如(使用Python API)...
...
events = service.events().list(calendarId=calId,
singleEvents=True, # expand recurrence events
q=searchString
).execute()
for e in events['items']:
if 'recurringEventId' in e:
root_ev = service.events().get(CalendarId=calId,
eventId = e['recurringEventId']
).execute()
# Copy the recurrence rules from the root event into our own:
e['recurrence'] = root_ev['recurrence']
Events.list 返回事件资源列表。
"kind": "calendar#event",
"etag": "\"9722590000\"",
"id": "3nmhbd0465ts1enliigj4",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=285781",
"created": "2015-04-13T07:24:21.000Z",
"updated": "2015-04-13T07:24:21.509Z",
"summary": "My event",
"location": " ",
"creator": {
"email": "[email protected]",
"displayName": "XXX",
"self": true
},
"organizer": {
"email": "[email protected]",
"displayName": "XXX",
"self": true
},
"start": {
"dateTime": "2015-04-21T19:00:00+02:00",
"timeZone": "Europe/Copenhagen"
},
"end": {
"dateTime": "2015-04-21T21:00:00+02:00",
"timeZone": "Europe/Copenhagen"
},
"recurrence": [
"RRULE:FREQ=WEEKLY;COUNT=24;BYDAY=TU"
],
"iCalUID": "[email protected]",
"sequence": 0,
"reminders": {
"useDefault": false,
"overrides": [
{
"method": "popup",
"minutes": 45
}
]
}
如果该事件有重复设置,您可以在那里找到它。
“复发”:[ “RRULE:FREQ=WEEKLY;COUNT=24;BYDAY=TU” ]
我看不到你的代码如何访问它,但如果你在 event.list 的底部进行测试,你会注意到,如果你有权访问日历,你应该有权访问重复字段。
在 Events: list 中,您可能想查看
singleEvents
参数,将其打开意味着您不需要解析重复,因为事件已经单独呈现。
https://developers.google.com/calendar/api/v3/reference/events/list
参数名称 | 价值 | 描述 |
---|---|---|
单一事件 | 布尔值 | 是否将重复事件扩展为实例,并且仅返回单个一次性事件和重复事件的实例,而不返回底层重复事件本身。选修的。默认为 False。 |