Outlook REST API未来重复性事件正在创建,但启动时间错误
我正在使用REST API端点https://outlook.office.com/api/v1.0/me/events/在Outlook live中创建会议。会议的有效载荷看起来喜欢 -Outlook REST API未来重复性事件正在创建,但启动时间错误
{
"Subject":"Test Meeting",
"Location":{
"DisplayName":""
},
"Start":"2017-03-02T18:00:00Z",
"End":"2017-03-02T19:00:00Z",
"Body":{
"ContentType":"HTML",
"Content":"<html><body>Test Meeting Content<\/body><\/html>"
},
"Recurrence":{
"Pattern":{
"Type":"Weekly",
"Interval":1,
"Month":0,
"Index":"First",
"FirstDayOfWeek":"Sunday",
"DayOfMonth":0,
"DaysOfWeek":["Thursday"]
},
"Range":{
"Type":"EndDate",
"StartDate":"2017-03-02",
"EndDate":"2017-03-31"
}},
"Attendees":[
{
"EmailAddress":{
"Address":"[email protected]"
},
"Type":"Required"
}
]
}
对于一个月每周这种重复发生的事件,前两次发生在正确的时间创建的,但三个会议事件其余都越来越有一个小时的延迟(而不是10创建:UTC UTC,现在是上午11:00)。
我甚至用v2.0端点尝试过没有运气。我也尝试通过时区来开会日期和结束日期,但它表现出相同的行为。
有没有人碰到过这个或类似的问题?任何指针都会有很大的帮助,谢谢!
参考API - https://msdn.microsoft.com/office/office365/APi/calendar-rest-operations#CreateEvents
的API在技术上表现正确这里。 UTC不会更改,但您在客户端上配置的时区可能会发生变化。在美国夏令时开始于3月12日,所以你看到约会在当地视图中“转移”,以便约会始终在UTC 18:00开始,正如你指定的:)
所以我的猜测是你希望启动时间在DST更改期间保持不变,因此您真正想要在此处执行的操作是在请求中指定用户的时区。我建议使用V2 API,其中Start
和End
改变类型的DateTimeTimeZone
,可以按名称来指定TZ:
"Start": {
"DateTime": "2017-03-02T10:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2017-03-02T11:00:00",
"TimeZone": "Pacific Standard Time"
},
但是,如果你需要保持与1.0版API,那么你仍然可以使用StartTimeZone
和EndTimeZone
属性在请求中指定TZ。您在此处执行的额外工作是计算Start
和End
值中的偏移量。因此,例如,对于太平洋标准时间,偏移量是-08:00
从UTC,所以相关位会是什么样子:
"Start": "2017-03-02T10:00:00-08:00",
"StartTimeZone": "Pacific Standard Time",
"End": "2017-03-02T11:00:00-08:00",
"EndTimeZone": "Pacific Standard Time",
哦,我明白了,我完全错过了。谢谢@Jason。 –