我正在尝试使用Google Calendar API方法gapi.client.calendar.events.list来检索日历 上的事件。
我可以成功过滤开始日期和结束日期。但是,如果一个事件昨天开始并且仍然在进行中,过滤今天开始的事情对我没有帮助。
var request = gapi.client.calendar.events.list({
'calendarId': 'my calendar id',
// shows things that have not yet started
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'orderBy': 'startTime'
});
如何查找当前正在进行的日历上的事项列表?
我(显然)想避免拉一周的活动并解析它。
答案 0 :(得分:0)
没有直接查询当前事件的方法,但您当然可以给它一个有限的最小和最大时间,因此您只需要搜索少量事件。如果您的活动是定期的并且持续时间可以预测,那么您可能只需要给它一个。
events = client.events().list(calendarId='primary',
timeMin='2011-12-22T09:00:00Z',
timeMax='2011-12-22T22:00:00Z').execute()
有关详情,请参阅Google Calendar API的官方文档:https://developers.google.com/google-apps/calendar/?csw=1
答案 1 :(得分:0)
所以我来到这个线程寻找相同的答案但无济于事,所以这就是你可以做的:
$data = self::$service->events->listEvents(self::$calendarId, $optParams);
$curr_time = time();
$active_meetings = array();
if (count($data->getItems()) > 0) {
foreach ($data->getItems() as $event) {
$start = date("U", strtotime($event->start->dateTime));
$end = date("U", strtotime($event->end->dateTime));
if(($start > $curr_time) && ($end < $curr_time))
{
$active_meetings[$event->id] = $event->summary;
}
}
}
return $active_meetings;
这里只是将事件恢复到 1 小时前的事件到 1 小时后的事件,然后将它们的开始时间和结束时间与当前时间进行比较。
这将列出当前正在进行的事件。谢谢