使用Office365日历API无法获取会议室的所有繁忙时间
尝试提取日历活动以便允许用户选择参加者和会议室可用的会议时间。使用Office365日历API无法获取会议室的所有繁忙时间
我们正在使用的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('[email protected]')/findmeetingtimes
{
"Attendees": [{
"Type": "Required",
"EmailAddress": {
"Name": "Palo Alto meeting room",
"Address": "[email protected]"
}
}],
"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": "[email protected]"
}]
},
"MinimumAttendeePercentage": "0",
"MaxCandidates": "1000",
"ReturnSuggestionReasons": "true"
}
任何帮助将不胜感激。
好吧,澄清一下,这是我最初错过的关键点:您遇到的问题是由已认证的用户使用会议室预定的预约作为位置不会导致进入出现在FindMeetingTimes
响应中。 (起初我以为你说这是显示为Free
!)
这是正确的行为。 FindMeetingTimes
并不意味着要返回忙/闲结果的详尽列表。相反,它是找到一个潜在的会议时间!该列表基于组织者(经过验证的用户)和指定与会者的可用性。因为主办单位和房间都很忙(因为主办单位已经预约了房间),这个时间段甚至没有出现。当你以另一个用户的身份提出请求时,他们是组织者,因为他们在那个时候是空闲的,所以这个时间段是可能的时间。
所以我可能会误解你想做什么,但这应该适合你。只要你只是将可能的时间呈现出来,就不存在冲突的可能性。
即使用户为包括其他与会者的会议室创建了一个活动,并且该用户在那个时候是免费的,但是会议室不会显示为空闲或忙碌,只是缺失。这种行为是令人困惑的,因为它只发生在这种特殊情况下,并且有些令人失望,因为如果它返回忙事件在这种情况下,API可以允许我们也显示忙时间,从而允许更丰富的功能。在任何情况下,我都明白API仅用于展示免费时间。非常感谢你的帮助! – user2899845
我无法用会议室重现此行为,所以我想这里可能有一个细节丢失。用户如何在会议室的日历上创建活动?为了清楚起见:我用我的用户登录到OWA,在我的日历上创建了一个事件(对于上午10点到11点PST),并添加了conf room作为位置。我从机房日历中得到了回复。然后,我以同一用户的身份提出了API请求,并在同一天的上午9点到12点之间限制了我的时间。正如预期的那样,我没有在上午10点到11点之间找回任何可用的插槽。 –
@JasonJohnston谢谢你的关注!我会澄清。当另一个用户使用密码空间作为位置创建事件时,事件的时间会返回为忙碌状态。但是,当创建该事件的同一用户请求会议室的可用性时,它不会因空闲和忙碌而返回,而只会丢失。我们希望显示房间何时忙碌,并且缺少这些信息。希望很清楚。 – user2899845