Outlook约会时区显示问题

时间:2017-03-30 09:33:23

标签: .net outlook calendar office365api

我是英格兰的开发人员,目前我在英国夏季。

使用Office 365邮件,日历和联系API的.Net客户端库通过Office 365 API添加约会时,在Outlook(2016)中查看时,约会上的时区按钮无法单击并且时区列表始终显示UTC

请参阅此图片以获取示例

(See this image for an example)

当我将鼠标悬停在Outlook中的日历中的约会时,会显示BST中的时间(正如预期的那样)。

请参阅此图片以获取示例

(see this image for an example)

但是,当我手动向日历添加约会时,不会选中/点击时区按钮,我可以自由选中/取消选中该按钮。此外,当我单击按钮时,将显示正确的时区(都柏林,爱丁堡,里斯本,伦敦)。

请注意,约会显示通过Office 365在线查看时的正确时间 - https://outlook.office.com/owa/

为什么会这样?

更多信息:

在Google上搜索了一段时间后,我确实遇到了https://social.technet.microsoft.com/Forums/office/en-US/44093e33-133d-4de7-9f67-9ec591453bd0/calendar-meeting-time-zone-display-issue?forum=outlook

但我在https://outlook.office.com/owa/

中没有看到该选项

在我的代码中,我在Microsoft.Office365.OutlookServices.Event上设置了以下属性:

Private Sub UpdateEvent(ByVal cEvent As [Event], ByVal tCalendar As t_Calendar)
    Dim cLocation As New Location()
    cLocation.DisplayName = tCalendar.sLocation

    Dim cBody As New ItemBody()
    cBody.ContentType = BodyType.HTML
    cBody.Content = tCalendar.sDescription

    cEvent.Subject = tCalendar.sSummary
    cEvent.Location = cLocation

    cEvent.IsAllDay = False
    cEvent.Start = New DateTimeOffset(tCalendar.dtStart)
    cEvent.End = New DateTimeOffset(tCalendar.dtEnd)

    cEvent.Body = cBody
End Sub

我已按照指南https://github.com/jasonjoh/office365-azure-guides/blob/master/RegisterAnAppInAzure.md在Azure AD中注册Office 365 API应用程序。

1 个答案:

答案 0 :(得分:0)

我认为我们在这里混淆了两个不同的问题。 Outlook应用程序的此问题与Office365 API问题无关。如果您使用Outlook应用程序创建事件,正如您所说,您可以更改TimeZone,现在发送事件,然后尝试编辑该事件(在Outlook中),您将看到您无法更改时区。因此,它不仅适用于Office365 API。看起来Outlook一旦设置就不会让你更改TimeZone。