【问题标题】:How to get current events from google calendar API?如何从谷歌日历 API 获取当前事件?
【发布时间】:2021-05-07 22:27:40
【问题描述】:

我正在尝试使用 Google 日历 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'
    });

我如何在日历上找到当前正在进行的事情的列表?

我(显然)希望避免提取一周的事件并对其进行解析。

【问题讨论】:

    标签: javascript google-calendar-api google-api-js-client


    【解决方案1】:

    没有直接查询当前事件的方法,但您当然可以给它一个有限的最小和最大时间,因此您只能搜索少量事件。如果您的活动是定期的并且持续时间可预测,那么您可以让它只给您一个。

    events = client.events().list(calendarId='primary',
                                  timeMin='2011-12-22T09:00:00Z',
                                  timeMax='2011-12-22T22:00:00Z').execute()
    

    更多信息请阅读谷歌日历API官方文档:https://developers.google.com/google-apps/calendar/?csw=1

    【讨论】:

    • 是的,但是如果现在有一个事件发生在我的 timeMin 之前开始的事件,那将无济于事。例如,如果有一个为期一周的活动从两天前开始,而我将 timeMin 设置为今天的开始,我将看不到为期一周的活动。
    【解决方案2】:

    所以我来到这个帖子寻找相同的答案但无济于事,所以这是你可以做的:

        $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 小时后,然后将它们的开始时间和结束时间与当前时间进行比较。

    这将列出当前正在进行的事件。谢谢

    【讨论】:

    • 为什么要评估$start 是否大于$curr_time?这将返回尚未开始的事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多