Microsoft Graph findMeetingTimes API update

Microsoft Graph team

Hi all, we want to give you a heads up on some changes that are coming to the findMeetingTimes API which has been available in preview in Microsoft Graph. 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 be available in the /beta and subsequestly in the  /v1.0 endpoint as we make the feature generally available.

In summary, the changes are as follows:

1. Names of the following complex types, properties and parameters are updated:

2. The timeSlot parameter changed from type microsoft.graph.timeStamp to type microsoft.graph.dateTimeTimeZone.

3. A new parameter minimumAttendeePercentage’ is being added. This is an optional parameter that indicates the minimum percentage of available attendees required for the API to return suggestions. Input values for this parameter should be of type Double and can range from 0 to 100.

The complete schema looks like below:

<Action Name=”findMeetingTimes” IsBound=”true”>

<Parameter Name=”bindingParameter” Type=”microsoft.graph.user”/>

<Parameter Name=”attendees” Type=”Collection(microsoft.graph.attendeeBase)”/>

<Parameter Name=”locationConstraint” Type=”microsoft.graph.locationConstraint”/>

<Parameter Name=”timeConstraint” Type=”microsoft.graph.timeConstraint”/>

<Parameter Name=”meetingDuration” Type=”Edm.Duration”/>

<Parameter Name=”maxCandidates” Type=”Edm.Int32″/>

<Parameter Name=”isOrganizerOptional” Type=”Edm.Boolean”/>

<Parameter Name=”returnSuggestionReasons” Type=”Edm.Boolean”/>

<Parameter Name=”minimumAttendeePercentage” Type=”Edm.Double”/>

<ReturnType Type=”microsoft.graph.meetingTimeSuggestionsResult” Nullable=”false”/>



<ComplexType Name=”meetingTimeSuggestionsResult”>

<Property Name=”meetingTimeSuggestions” Type=”Collection(microsoft.graph.meetingTimeSuggestion)”/>

<Property Name=”emptySuggestionsReason” Type=”Edm.String” Unicode=”false”/>



<ComplexType Name=”meetingTimeSuggestion”>

<Property Name=”meetingTimeSlot” Type=”microsoft.graph.timeSlot”/>

<Property Name=”confidence” Type=”Edm.Double”/>

<Property Name=”organizerAvailability” Type=”microsoft.graph.freeBusyStatus”/>

<Property Name=”attendeeAvailability” Type=”Collection(microsoft.graph.attendeeAvailability)”/>

<Property Name=”locations” Type=”Collection(microsoft.graph.location)”/>

<Property Name=”suggestionReason” Type=”Edm.String” Unicode=”false”/>



<ComplexType Name=”timeSlot”>

<Property Name=”start” Type=”microsoft.graph.dateTimeTimeZone”/>

<Property Name=”end” Type=”microsoft.graph.dateTimeTimeZone”/>


  1. The API now requires one of the two scopes – Calendars.Read.Shared OR Calendars.ReadWrite.Shared.

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. Once the changes have been fully deployed worldwide (4-6 weeks), your app can start using the new schema via the “findMeetingTimes” API. In the meantime, if your app is using the API at the /beta endpoint, users might experience intermittent issues when accessing the API through your app. We have also made the old schema available to you through the ‘findMeetingTimesOld’ API. The ‘findMeetingTimesOld’ API will be available through the deployment period and will be retired shortly after the schema changes are fully deployed.

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 for more information on APIs available.

Thank you and happy coding 

Shreedevi Padmasini on behalf of the Microsoft Graph and Outlook teams

Feedback usabilla icon