首页 > 解决方案 > Google 日历 API 免费插槽

问题描述

我对编码真的很陌生,想征求一些关于日历 API 的建议。我设法创建了一个事件列表,并在日历中显示了忙碌的时间,但我无法弄清楚如何显示事件之间空闲时段的输出。

# Call the Calendar API
    now = datetime.datetime.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
    print('Getting the upcoming 10 events')
    events_result = service.events().list(calendarId='<email>', timeMin=now,
                                        maxResults=10, singleEvents=True,
                                        orderBy='startTime').execute()
    events = events_result.get('items', [])

    if not events:
        print('No upcoming events found.')
    for event in events:
        start = event['start'].get('dateTime', event['start'].get('date'))
        #print(start, event['summary'])"""

    cst = timezone('UTC')

    the_datetime_start = cst.localize(datetime.datetime(2020, 6, 10, 0))
    print(the_datetime_start)
    the_datetime_end = cst.localize(datetime.datetime(2020, 6, 10, 16))
    print(the_datetime_end)
    body = {
        "timeMin": the_datetime_start.isoformat(),
        "timeMax": the_datetime_end.isoformat(),
        "timeZone": 'UK',
        "items": [{"id": '<email>'}]
    }

    eventsResult = service.freebusy().query(body=body).execute()

    print(eventsResult)

标签: apicalendargoogle-calendar-api

解决方案


很难用你的信息给你一个代码答案,但如果你想显示你的空闲位置,你只需要:

  • 完成计划中的所有任务
  • 订购
  • 将第一个结束日期/小时任务与第二个开始日期/小时任务进行比较
  • 两者之间的区别是您的免费插槽,因此您拥有免费插槽
  • 为第二个任务和第三个任务重复一次,并为另一个任务重复

推荐阅读