{"id":1596,"date":"2016-04-29T16:49:40","date_gmt":"2016-04-29T16:49:40","guid":{"rendered":"https:\/\/developer.microsoft.com\/en-us\/office\/blogs\/?p=1596"},"modified":"2016-04-29T16:49:40","modified_gmt":"2016-04-29T16:49:40","slug":"upcoming-changes-to-the-findmeetingtimes-preview-api","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/upcoming-changes-to-the-findmeetingtimes-preview-api\/","title":{"rendered":"Upcoming changes to the FindMeetingTimes (Preview) API"},"content":{"rendered":"<p>We wanted to give you all a heads up on some changes that are coming to the <a href=\"https:\/\/msdn.microsoft.com\/en-us\/office\/office365\/api\/calendar-rest-operations#Findmeetingtimespreview\" target=\"_blank\" rel=\"noopener noreferrer\">FindMeetingTimes (Preview) API<\/a> which is available in preview. We are making these changes to further improve the API based on feedback, and these changes will be widely deployed over the next few weeks. The updated API will continue to be available only in preview.<\/p>\n<p>Please note that this is a breaking change, and if your app uses the FindMeetingTimes (Preview) API, the app needs to be updated to accommodate these changes.<\/p>\n<p>In summary, the changes are as follows:<\/p>\n<ol>\n<li>The <code>Score<\/code> property will be removed.<\/li>\n<li>The return type for the API will now be a <code>MeetingTimeCandidatesResult<\/code> complex type:<\/li>\n<\/ol>\n<h2>Metadata definition<\/h2>\n<pre><code>&lt;ComplexType Name=\"MeetingTimeCandidatesResult\"&gt;\n  &lt;Property Name=\"MeetingTimeSlots\" Type=\"Collection(Microsoft.OutlookServices.MeetingTimeCandidate)\" \/&gt;\n  &lt;Property Name=\"EmptySuggestionsHint\" Type=\"Edm.String\" \/&gt;\n&lt;\/ComplexType&gt;<\/code><\/pre>\n<p>This complex type has two properties. The first property, <code>MeetingTimeSlots<\/code>, is a\u00a0collection of <code>MeetingTimeCandidates<\/code>, which is a list of best possible meeting times as calculated by the API. This is the same list that was returned in the earlier version of the API. The second is a string property called <code>EmptySuggestionsHint<\/code>. This property provides the reason why the <code>MeetingTimeCandidates<\/code> collection is <code>null<\/code>. Using this, an app or user can understand more about why the suggestions collection was <code>null<\/code>, and call the API again with a different set of parameters.<\/p>\n<p>And here is a sample to show you what the new API response would look like, when there are no suggestions returned:<\/p>\n<pre><code>{\n  \"@odata.context\":\"https:\/\/outlook.office.com \/api\/beta\/$metadata#Microsoft.OutlookServices.MeetingTimeCandidatesResult\",    \n  \"MeetingTimeSlots\": [ ],    \n  \"EmptySuggestionsHint\": \"AttendeesUnavailableOrUnknown\" \n}<\/code><\/pre>\n<p>And if there are suggestions returned, the <code>EmptySuggestionsHint<\/code> property would be empty:<\/p>\n<pre><code>{\n  \"@odata.context\": \"https:\/\/outlook.office.com\/api\/beta\/$metadata#Microsoft.OutlookServices.MeetingTimeCandidatesResult\",\n  \"MeetingTimeSlots\": [\n    {\n      \"MeetingTimeSlot\": {\n        \"Start\": {\n          \"Date\": \"2016-04-20\",\n          \"Time\": \"11:00:00.0000000\",\n          \"TimeZone\": \"Eastern Standard Time\"\n        },\n        \"End\": {\n          \"Date\": \"2016-04-20\",\n          \"Time\": \"12:00:00.0000000\",\n          \"TimeZone\": \"Eastern Standard Time\"\n        }\n      },\n      \"Confidence\": 50.0,\n      \"OrganizerAvailability\": \"Free\",\n      \"AttendeeAvailability\": [\n        {\n          \"Attendee\": {\n            \"Type\": \"Required\",\n            \"EmailAddress\": {\n              \"Address\": \"sarad@contoso.com\"\n            }\n          },\n          \"Availability\": \"Busy\"\n        },\n        {\n          Attendee\": {\n            \"Type\": \"Required\",\n            \"EmailAddress\": {\n              \"Address\": \"garthf@contoso.com\"\n            }\n          },\n          \"Availability\": \"Free\"\n        }\n      ],\n      \"Locations\": [],\n      \"SuggestionHint\": \"Suggested because it is one of the nearest times when most attendees are available.\"\n    }\n  ],\n  \"EmptySuggestionsHint\": \"\"\n}<\/code><\/pre>\n<p>More extensive documentation on the new functionality is coming soon in our API reference documentation page. Please let us know if you have any questions, and visit <a href=\"https:\/\/developer.microsoft.com\/en-us\/outlook\/\">https:\/\/developer.microsoft.com\/en-us\/outlook\/<\/a> for the latest news and updates.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We wanted to give you all a heads up on some changes that are coming to the FindMeetingTimes (Preview) API which is available in preview. We are making these changes to further improve the API based on feedback, and these changes will be widely deployed over the next few weeks. The updated API will continue to be available only in preview.<\/p>\n","protected":false},"author":69077,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[12],"class_list":["post-1596","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","tag-outlook"],"acf":[],"blog_post_summary":"<p>We wanted to give you all a heads up on some changes that are coming to the FindMeetingTimes (Preview) API which is available in preview. We are making these changes to further improve the API based on feedback, and these changes will be widely deployed over the next few weeks. The updated API will continue to be available only in preview.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69077"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=1596"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1596\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=1596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=1596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=1596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}