无法使用 Office365 日历获取会议室的所有繁忙时间 API

Can't get all busy times of meeting rooms using the Office365 Calendar API

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

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

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

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

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"
}

任何帮助将不胜感激。

好的,澄清一下,这是我一开始错过的关键点:您遇到的问题是经过身份验证的用户使用会议室作为地点预订的约会不会导致进入显示在 FindMeetingTimes 响应中。 (起初我以为你是说它显示为 Free!)

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

所以我可能误解了您的意图,但这应该对您有用。只要您只是将时间 returned 呈现为可能性,就不会存在冲突的可能性。