【问题标题】:Can't get all busy times of meeting rooms using the Office365 Calendar API无法使用 Office365 日历 API 获取会议室的所有繁忙时间
【发布时间】:2017-02-26 09:32:10
【问题描述】:

尝试获取日历事件以允许用户选择参加者和会议室可用的会议时间。

我们正在使用 Outlook 日历 REST API v2 - findMeetingTimes: https://msdn.microsoft.com/en-us/office/office365/api/calendar-rest-operations#FindMeetingTimes

请求返回几乎所有的事件。 由于某些原因,执行请求的用户创建的事件不包含在响应中。这意味着会议室或与会者看起来是免费的,即使他们的日历中有活动。

这是一个仅将会议室作为与会者的示例请求。在为会议室和用户请求活动时,我们看到了同样的问题行为。

https://outlook.office.com/api/v2.0/users('user@companyname.onmicrosoft.com')/findmeetingtimes

{
    "Attendees": [{
        "Type": "Required",
        "EmailAddress": {
            "Name": "Palo Alto meeting room",
            "Address": "paloalto@companyname.onmicrosoft.com"
        }
    }],
    "TimeConstraint": {
        "Timeslots": [{
            "Start": {
                "DateTime": "2017-02-11T22:00:00",
                "TimeZone": "GMT Standard Time"
            },
            "End": {
                "DateTime": "2017-04-29T20:59:59",
                "TimeZone": "GMT Standard Time"
            }
        }]
    },
    "LocationConstraint": {
        "IsRequired": "false",
        "SuggestLocation": "false",
        "Locations": [{
            "ResolveAvailability": "false",
            "DisplayName": "Palo Alto meeting room",
            "LocationEmailAddress": "paloalto@companyname.onmicrosoft.com"
        }]
    },
    "MinimumAttendeePercentage": "0",
    "MaxCandidates": "1000",
    "ReturnSuggestionReasons": "true"
}

任何帮助将不胜感激。

【问题讨论】:

  • 我无法在会议室中重现这种行为,所以我认为这里可能缺少一个细节。用户如何在会议室的日历上创建活动?为了清楚起见:我使用我的用户登录到 OWA,在我的日历上创建了一个事件(太平洋标准时间上午 10 点到上午 11 点),并将会议室添加为位置。我从会议室日历上拿回了接受。然后,我以同一用户的身份发出 API 请求,时间限制在同一天上午 9 点到下午 12 点之间。正如预期的那样,我没有取回上午 10 点到 11 点之间的任何可用时段。
  • @JasonJohnston 感谢您对此进行调查!我会澄清的。当另一个用户使用会议室作为位置创建事件时,事件的时间将返回为忙碌。但是,当创建事件的同一用户请求会议室的可用性时,它不会以既不空闲也不忙的形式返回,它只是丢失了。我们想显示房间何时忙碌并且缺少此信息。希望清楚。

标签: calendar office365 office365api outlook-restapi office365-restapi


【解决方案1】:

好的,所以澄清一下,这是我最初错过的关键点:您遇到的问题是经过身份验证的用户使用会议室作为位置预订的约会不会导致显示条目在FindMeetingTimes 回复中。 (起初我以为你说它显示为Free!)

这是正确的行为。 FindMeetingTimes 并不意味着返回详尽的忙/闲结果列表。相反,它是找到一个潜在的会议时间!该列表基于组织者(经过身份验证的用户)和指定与会者的可用性。因为组织者和房间都很忙(因为组织者已经在房间里预约了),所以甚至没有显示时间段。当您以其他用户的身份提出请求时,他们就是组织者,并且由于当时他们是空闲的,因此该空档被显示为可能的时间。

所以我可能会误解你想要做什么,但这应该适合你。只要您只是将返回的时间呈现为可能性,就不存在冲突的可能性。

【讨论】:

  • 对,更重要的是,即使用户为会议室创建了一个包含其他与会者的活动,并且该用户当时是空闲的,会议室也不会显示为空闲也不忙,只是想念。这种行为令人困惑,因为它只发生在这种特殊情况下,而且有点令人失望,因为如果在这种情况下返回繁忙事件,API 也可以允许我们显示 BUSY 时间,从而提供更丰富的功能。在任何情况下,我都明白 API 仅用于展示免费时间。非常感谢您的帮助!
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多