我不会在太平洋标准时区或 GMT 标准时区的用户中重现此行为。为了清楚起见,我正在使用 Postman 进行所有测试,并且我没有使用上面提到的 Prefer: outlook.timezone 标头 Jeremy。
我在太平洋时间下午 2 点(UTC 时间 22:00)为用户创建了一个每日没有结束的约会。另请注意,夏令时在 3 月 10 日的这个时区开始。如下所示,更新前后实例的时间都是正确的。
我还为 GMT 标准时区中的用户重复了相同的事件序列(在 web 上的 Outlook 中如此配置):
我得到了与该用户完全相同的结果。
我建议您在修补重复时始终使用原始重复中的recurrenceTimeZone。您最初可能通过修补 UTC 破坏了重复。
在 Outlook 网页版中创建后获取事件
GET /me/events/{id}&$select=originalStartTimeZone,originalEndTimeZone,start,end,recurrence
{
"id": "AAMkAGE1NWM...",
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"start": {
"dateTime": "2019-01-24T22:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2019-01-24T22:30:00.0000000",
"timeZone": "UTC"
},
"recurrence": {
"pattern": {
"type": "daily",
"interval": 1,
"month": 0,
"dayOfMonth": 0,
"firstDayOfWeek": "sunday",
"index": "first"
},
"range": {
"type": "noEnd",
"startDate": "2019-01-24",
"endDate": "0001-01-01",
"recurrenceTimeZone": "Pacific Standard Time",
"numberOfOccurrences": 0
}
}
}
在修改前获取实例
注意开始/结束时间的变化。
GET /me/events/{id}/instances?startDateTime=2019-03-09T00:00:00&endDateTime=2019-03-11T00:00:00&
$select=originalStartTimeZone,originalEndTimeZone,start,end
{
"value": [
{
"id": "AAMkAGE1NWM...",
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"start": {
"dateTime": "2019-03-09T22:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2019-03-09T22:30:00.0000000",
"timeZone": "UTC"
}
},
{
"@odata.etag": "W/\"bReRxUIs3kGIyXXcVJg69AAANf7nZQ==\"",
"id": "AAMkAGE1NWM...",
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"start": {
"dateTime": "2019-03-10T21:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2019-03-10T21:30:00.0000000",
"timeZone": "UTC"
}
}
]
}
更新事件重复以添加结束日期
请注意,我将 recurrenceTimeZone 保留为与原始值相同的值。
PATCH /me/events/{id}
{
"recurrence": {
"pattern": {
"type": "daily",
"interval": 1,
"month": 0,
"dayOfMonth": 0,
"firstDayOfWeek": "sunday",
"index": "first"
},
"range": {
"type": "endDate",
"startDate": "2019-01-24",
"endDate": "2020-01-23",
"recurrenceTimeZone": "Pacific Standard Time",
"numberOfOccurrences": 0
}
}
}
修改后获取实例
请注意,开始/结束时间仍然正确移动。
GET /me/events/{id}/instances?startDateTime=2019-03-09T00:00:00&endDateTime=2019-03-11T00:00:00&
$select=originalStartTimeZone,originalEndTimeZone,start,end
{
"value": [
{
"id": "AAMkAGE1NWM...",
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"start": {
"dateTime": "2019-03-09T22:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2019-03-09T22:30:00.0000000",
"timeZone": "UTC"
}
},
{
"@odata.etag": "W/\"bReRxUIs3kGIyXXcVJg69AAANf7nZQ==\"",
"id": "AAMkAGE1NWM...",
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"start": {
"dateTime": "2019-03-10T21:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2019-03-10T21:30:00.0000000",
"timeZone": "UTC"
}
}
]
}