Odata v.4 $filter for the DateTime Calendar Events in the Office 365 REST API

Odata v.4 $filter for the DateTime Calendar Events in the Office 365 REST API

我正在尝试使用以下查询从 Office 365 REST API 获取和筛选日历事件:

https://outlook.office.com/api/v2.0/users/user@user.com/calendars/AAAAAAAAAAA/events?$top=100&$select=BodyPreview&$filter=Start ge 2016-02-10T22:00:00Z

因此,对于大于 2016-02-10 22:00:00.

的所有事件,我想要 100 个只有 BodyPreview 作为 return 值的结果

我收到的错误信息是:

ERROR request returned 400
error:
code: 'RequestBroker-ParseUri',
message: 'A binary operator with incompatible types was detected. Found operand types \'Microsoft.OutlookServices.DateTimeTimeZone\' and \'Edm.DateTimeOffset\' for operator kind \'GreaterThanOrEqual\'.'

没有过滤器选项的查询工作完美。那么如何让我的查询代表 'Microsoft.OutlookServices.DateTimeTimeZone' 类型呢?

我看过这个post: Odata $filter for the date in the Office 365 REST API

但我看不出我的查询与 post 中的查询有何不同。

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar 上的所有示例都没有在示例中提及此类 DateTimeTimeZone 查询。

我也试过这种查询格式:

datetime'2016-01-10T22:00:00'

也没有运气。 有什么想法吗?

StartEnd changed in the beta and v2 endpoints 的类型。它现在是一个复杂的类型,所以你需要稍微改变一下你的过滤器:

$filter=Start/DateTime ge 2016-02-10T22:00:00Z