api - 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)
解决方案
很难用你的信息给你一个代码答案,但如果你想显示你的空闲位置,你只需要:
- 完成计划中的所有任务
- 订购
- 将第一个结束日期/小时任务与第二个开始日期/小时任务进行比较
- 两者之间的区别是您的免费插槽,因此您拥有免费插槽
- 为第二个任务和第三个任务重复一次,并为另一个任务重复
推荐阅读
- python - Have I created the mergesort algorithm
- nativescript - 如何访问 nativescript 页面组件的 isLoaded 属性?
- c++ - c++ 转换运算符重载失败
- json - Elixir - 将 http 响应 json 转换为 ecto.schema 对象
- r - ggplot2 使用 facetwrap 和多个变量
- javascript - 在 onClick 处理程序中传递参数的最有效方法
- c# - 如何在 c# 中通过 linq 仅从日期时间获取日期?
- ios - 无法预览此文件 - [App name] 可能已崩溃 SWIFTUI XCODE11
- wso2 - 通过管理控制台批量删除身份服务器中的用户
- javascript - Cystoscape 超出画布边框