获取没有开始和结束日期的事件

Get events without start and end date

Microsoft Graph Calendar API 中,我可以通过请求 url:

获取所有事件

/me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}

但我必须指定开始日期和结束日期。有没有办法在不指定日期的情况下获取所有事件?

只是将日期从请求中删除给我一个错误,它缺少这些参数。

/calendarView 端点旨在为您提供给定日期 运行ge 的日历呈现视图。如果没有日期 运行ge,API 将不得不呈现日历中的每个事件,可能要追溯到几十年前。这样做的计算成本可能过高,更不用说它对大规模性能的负面影响了。

如果您只想要原始的底层 event 对象,您可以使用 /events 端点。这将为您提供包含该日历中每个事件的分页结果。您将需要进行一些 post 处理,以根据主事件(即具有 "eventType": "seriesMaster" 的事件)为重复事件呈现单个实例。

一般来说,我建议使用 /calendarView,因为它会为您渲染系列实例。您可以通过将足够大的 window 传递给它来有效地模仿检索 "everything",尽管会降低性能。

为了说明,在 Graph Explorer return 整整十年 (2009-2019) 的事件中调用以下 URI:

https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2009-01-01&enddatetime=2019-12-31

值得注意的是,return 花费了 6,436 毫秒,并且数据仅包含少量事件。当我 运行 针对 my 日历进行同样的查询时,它花费了 13,883 毫秒。所以纯粹从性能的角度来看,我不建议定期查询一次超过 12 个月(即 startdatetime=2018-01-01&enddatetime=2018-12-31 花费了 2795 毫秒)。