Microsoft Graph Calendar API OData过滤器的开始/结束日期时间

时间:2020-10-22 15:26:50

标签: microsoft-graph-api

我正在尝试仅从Microsoft Graph Calendar API中的用户calendarView中检索某些事件。

我编写了以下概念验证代码:

        start = self.date_to_string(datetime.datetime.now())
        end = self.date_to_string(datetime.datetime.now() + datetime.timedelta(days = 365 * 3))
        start, end = min(start, end), max(start, end)

        data = await self.make_request(url, parameters = {
            "startDateTime" : start,
            "endDateTime" : end,
            "$filter" : "Start/DateTime ge '2017-07-01T08:00'" # and (start/dateTime ge '2020-10-21T16:31:40.5470240')"
        })

但是,当我发出请求时,这就是我得到的

{
  "error": {
    "code": "ErrorInternalServerError",
    "message": "An internal server error occurred. The operation failed.",
    "innerError": {
      "date": "2020-10-22T15:20:56",
      "request-id": "bef9513d-a5b3-4b23-b37a-8f341f6822ae",
      "client-request-id": "bef9513d-a5b3-4b23-b37a-8f341f6822ae"
    }
  }
}

删除$filter有帮助,但我确实需要它(我想过滤从日期时间范围开始和/或在日期时间范围结束的事件)。

我尝试了几件事:

  • cast(2017-07-01T08:00 as Edm.DateTimeOffset)
  • 2017-07-01T08:00Z
  • 2017-07-01T08:00Z+00:00

实际上几乎可以想到任何一种组合,但无济于事。请注意,official docs使用不同的格式,包括'2017-07-01T08:00'(与?$filter=start/dateTime ge '2017-07-01T08:00'一样)

有什么想法吗?

0 个答案:

没有答案