我正在构建一个恒温器,可以从谷歌日历中提取目标温度。在这样做时,我需要确定现在在Google日历中发生的事件。目前,我正在从Google获取.ics文件,然后使用Python icalendar library进行解析。
然后我遍历日历中的每个事件并进行测试:
在检查每个事件后(假设没有重叠事件),我得到一个事件,其中所有三个问题的答案都是“是”。那是当前的事件。
有更好的方法吗?特别是,有没有办法避免迭代日历中的每个事件?
答案 0 :(得分:6)
您应该使用Google Calendar API。您可以在一定时间内询问它们的事件,它会以一些很好的JSON响应,它会为您提供信息。甚至还有一个Python客户端负责将您的请求转换为JSON。
没有办法直接查询当前事件,但您当然可以给它一个有限的最小和最大时间,因此您只需要搜索少量事件。如果您的活动是定期的并且持续时间可以预测,那么您可能只需要给它一个。
events = client.events().list(calendarId='primary',
timeMin='2011-12-22T09:00:00Z',
timeMax='2011-12-22T22:00:00Z').execute()