Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
Build Intelligent mail contacts and calendar apps using the Outlook REST
APIs
Andrew Davidoff
Senior Software Engineer
Agenda
bullGeneral Overview
bullMicrosoft Graph amp Outlook API endpoints
bullUsage details
bullWhatrsquos new with the APIs
bull Key takeawaysbull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use across Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Overview
Why do the REST APIs matter
bull 100rsquos of millions of usersbull Office 365 amp Outlookcom for production apps amp servicesbull Hybrid Exchange deployment support in previewbull On-premises Exchange on our roadmap
bullMany of these are highly engaged Outlook users
bull Powerful intuitive way to build apps amp services
bullGranular tightly scoped permissions to access data
bull Based on open standards ndash OAuth 20 JSON amp OData 40
API Landscape
bull Modern APIsbull Microsoft Graph
bull The API to use to build apps amp services integrating w Office services for cloud amp hybrid users
bull Outlook REST APIbull OutlookExchange specific API endpoint to use if Microsoft Graph doesnrsquot have the
APIs yet
bull Older APIsbull Exchange Web Services (EWS) SOAP APIs
bull Available since Exchange 2007 SP1 for integration with Exchange No granular access
bull Exchange Active Sync (EAS)bull Used by mobile device manufacturers for built-in messaging client Requires licensing
bull Not intended for any other integrations including line of business apps amp services
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Agenda
bullGeneral Overview
bullMicrosoft Graph amp Outlook API endpoints
bullUsage details
bullWhatrsquos new with the APIs
bull Key takeawaysbull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use across Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Overview
Why do the REST APIs matter
bull 100rsquos of millions of usersbull Office 365 amp Outlookcom for production apps amp servicesbull Hybrid Exchange deployment support in previewbull On-premises Exchange on our roadmap
bullMany of these are highly engaged Outlook users
bull Powerful intuitive way to build apps amp services
bullGranular tightly scoped permissions to access data
bull Based on open standards ndash OAuth 20 JSON amp OData 40
API Landscape
bull Modern APIsbull Microsoft Graph
bull The API to use to build apps amp services integrating w Office services for cloud amp hybrid users
bull Outlook REST APIbull OutlookExchange specific API endpoint to use if Microsoft Graph doesnrsquot have the
APIs yet
bull Older APIsbull Exchange Web Services (EWS) SOAP APIs
bull Available since Exchange 2007 SP1 for integration with Exchange No granular access
bull Exchange Active Sync (EAS)bull Used by mobile device manufacturers for built-in messaging client Requires licensing
bull Not intended for any other integrations including line of business apps amp services
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Overview
Why do the REST APIs matter
bull 100rsquos of millions of usersbull Office 365 amp Outlookcom for production apps amp servicesbull Hybrid Exchange deployment support in previewbull On-premises Exchange on our roadmap
bullMany of these are highly engaged Outlook users
bull Powerful intuitive way to build apps amp services
bullGranular tightly scoped permissions to access data
bull Based on open standards ndash OAuth 20 JSON amp OData 40
API Landscape
bull Modern APIsbull Microsoft Graph
bull The API to use to build apps amp services integrating w Office services for cloud amp hybrid users
bull Outlook REST APIbull OutlookExchange specific API endpoint to use if Microsoft Graph doesnrsquot have the
APIs yet
bull Older APIsbull Exchange Web Services (EWS) SOAP APIs
bull Available since Exchange 2007 SP1 for integration with Exchange No granular access
bull Exchange Active Sync (EAS)bull Used by mobile device manufacturers for built-in messaging client Requires licensing
bull Not intended for any other integrations including line of business apps amp services
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Why do the REST APIs matter
bull 100rsquos of millions of usersbull Office 365 amp Outlookcom for production apps amp servicesbull Hybrid Exchange deployment support in previewbull On-premises Exchange on our roadmap
bullMany of these are highly engaged Outlook users
bull Powerful intuitive way to build apps amp services
bullGranular tightly scoped permissions to access data
bull Based on open standards ndash OAuth 20 JSON amp OData 40
API Landscape
bull Modern APIsbull Microsoft Graph
bull The API to use to build apps amp services integrating w Office services for cloud amp hybrid users
bull Outlook REST APIbull OutlookExchange specific API endpoint to use if Microsoft Graph doesnrsquot have the
APIs yet
bull Older APIsbull Exchange Web Services (EWS) SOAP APIs
bull Available since Exchange 2007 SP1 for integration with Exchange No granular access
bull Exchange Active Sync (EAS)bull Used by mobile device manufacturers for built-in messaging client Requires licensing
bull Not intended for any other integrations including line of business apps amp services
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
API Landscape
bull Modern APIsbull Microsoft Graph
bull The API to use to build apps amp services integrating w Office services for cloud amp hybrid users
bull Outlook REST APIbull OutlookExchange specific API endpoint to use if Microsoft Graph doesnrsquot have the
APIs yet
bull Older APIsbull Exchange Web Services (EWS) SOAP APIs
bull Available since Exchange 2007 SP1 for integration with Exchange No granular access
bull Exchange Active Sync (EAS)bull Used by mobile device manufacturers for built-in messaging client Requires licensing
bull Not intended for any other integrations including line of business apps amp services
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Modern API Basics ndash API Endpoints
bull Microsoft Graph bull Worldwide except China httpsgraphmicrosoftcombull China httpsmicrosoftgraphchinacloudapicn
bull Outlook REST API bull Office 365 Multi-Tenant httpsoutlookofficecomapibull China httpspartneroutlookcnapibull Office 365 Dedicated Per-customer URL
bull Documentationbull Graph APIs httpsgraphmicrosoftioen-usdocsbull China endpoint details
httpsgraphmicrosoftioen-usdocsoverviewdeployments
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Modern API Basics ndash Versioning
bull Version is explicitly mentioned in the path bull ltAPI endpointgtltVersiongt
bull Production version is ltAPI endpointgtvXYbull No breaking changes based on OData 40 versioning guidelinesbull Fully supported for production applications amp servicesbull Latest production versions Microsoft Graph v10 amp Outlook REST API v20
bull Beta version is ltAPI endpointgtbetabull New APIs introduced in Beta to solicit feedback Not intended for
productionbull Might make breaking changes based on feedbackbull Promoted to a production version usually within 3-6 months
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Modern API Basics - Addressing
bull Addressing a userbull Userrsquos mailbox ltAPI endpointgtltVersiongtusersmeganbcontosocom
bull Shortcut for signed in userrsquos mailbox ltAPI endpointgtltVersiongtme
bull Addressing a groupbull Group hellipgroupsltidgt where ltidgt is the Azure Active Directory group ID
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Auth for Modern APIs
bull OAuth required bull Unlike EWS app has no access to userrsquos credentials
bull Authentication respects your organizationrsquos policies eg 2 factor auth
bull Multiple auth flows supportedbull Open ID Connect for single sign on (SSO)
bull OAuth2 code flow support for interactive apps
bull OAuth2 client credential flow support for daemon apps
bull OAuth2 implicit grant flow for web apps
bull OAuth2 on-behalf flow for web apps
bull Granular consent limits exposure to faulty application amp service bugsbull Unlike EWS app can request consent for just the permission(s) it needs
eg CalendarsRead or ContactsReadWrite or MailSend
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Microsoft Graph
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Single API for
1Accessing datame users groups messages drive hellip
2Traversing datadriveitemsltidgtlastmodifiedByUser
3Accessing insightsinsightstrending
4WorkSchool and Personal
What is Microsoft Graph
httpsgraphmicrosoftcom
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
bullMany different APIs to access data
bullSeparate authentication stacks for work and personal
State of the world before Microsoft Graph
Work and school Personal
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Todayrsquos world with Microsoft Graph
Microsoft Graph httpsgraphmicrosoftcom
Work and school Personal
hellip
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Benefits to Developers
bull One auth for cloud amp hybrid on-premises usersbull Single registration portal for commercial (cloud on-premises) amp consumer
bull Single auth endpoint
bull One API endpointbull No need to autodiscover the API endpoint for a user amp remember it
bull Build compelling views for a user joining on-prem amp cloud content
bull Microsoft Graph returns meaningful error for capabilities not available on on-premises server
bull Easy to developer on your platform of choicebull Industry standards REST JSON OAuth 20
bull Microsoft Graph client libraries for multiple platforms once we exit preview
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Outlook Entities amp Capabilities on Graph v10
bull Mailbull Mail folders
bull Messages including Event Message
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders amp Contacts
bull Groupsbull Conversations threads posts
bull Calendar events
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extensions
bull Extended properties
bull Capabilitiesbull CRUD
bull Webhooks
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Outlook REST API Endpoint
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Microsoft Graph amp Outlook REST API Endpoint
httpsoutlookofficecomapihttpspartneroutlookcnapi
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Additional Entities amp Capabilities on Outlook API
v20
bullOutlook Tasksbull Task groups
bull Task folders
bull Tasks
bullCapabilitiesbull Sync folder hierarchy
bull Delta sync
beta
bullCapabilitiesbull Streaming notifications
bull Batching API when signed in as user
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Microsoft Graph amp Outlook API Endpoints
bullMicrosoft Graph proxies request to Outlook API endpointbull httpsgraphmicrosoftcomv10 proxies to httpsoutlookofficecomapiv20
bull Same Outlook business logic is exercised for requests to Graph and Outlook API endpoints
bullWhy does Outlook endpoint offer more APIs than Graphbull Most API changes first deployed to Outlook API and then added to Graph in 1-2 months
bull Sometimes it may take longer to fill the gap in Graph becausebull A capability like batching has to be generalized to work well for Graph and all its downstream services
bull A concept like folder needs to be rationalized across multiple services
bull We are working hard to drive down gap between Graph and Outlook API endpoints to zero
bull Use Graph unless blocked by an API gap w Outlook APIbull Using Graph makes it easy for you to leverage content and insights from multiple services
bull You must use Graph to support on-premises users of Exchange hybrid deployments
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Sample API RequestsProduction or Preview
Endpoint Operation Service endpoint
Production
Microsoft Graph v10
Get my profile GET v10me
Get my profile picture GET v10mephoto$value
Get my inbox messages GET v10memailFoldersinboxmessages
Get my calendar GET v10mecalendar
Set my out of office reply PATCH v10memailboxSettingsautomaticRepliesSetting
Get a message extension GET v10memessagesltidgtextensionsltidgt
Get group conversations GET v10groupsltidgtconversations
Outlook API v20
Get my Outlook tasks GET v20metasks
Sync messages GET v20memailfoldersinboxmessages
Preview
Microsoft Graph beta
Get people related to me GET betamepeople
Find meeting times POST betamefindMeetingTimes
Outlook API beta
Batch multiple APIs POST beta$batch
Streaming notifications POST betaMeGetNotifications
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Sample application Meeting ManagerGitHub Interop-REST-Mail-Contacts-Calendar-Sample
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
How to use Microsoft Graph APIs
bull You call resource URLs using one of operations permitted on the resourcebull GETbull POSTbull PATCHbull PUTbull DELETE
bull All Microsoft Graph API requests use the following basic URL patternbull httpsgraphmicrosoftcomversionresource[odata_query_parameters]
bull Summary of common requests available in the Overviewbull httpgraphmicrosoftioGraphDocumentsen-usoverviewoverviewhtm
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Sample Meeting Manager Application
bull Available on GitHubbull httpsgithubcomOfficeDevInterop-REST-Mail-Contacts-Calendar-
Sample
bull Sample code for two platforms Android and Windows (UWP)
bull The sample is a real working application and can be used as starting point or a set of building blocks
bull Both applications log requests and responses to let you examine real-life trafficbull UWP application has advanced detailed logging
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Sample API Calls for Meetings and Events
bull Calendar can be queried in two waysbull Events for the given time period (does not expand meeting series)
bull Calendar view (with expanded meeting series)
bull Query meetings for a selected dateGET httpsgraphmicrosoftcomv10MecalendarViewstartDateTime=ampendDateTime=$orderby=startdateTime
bull Get description of event instance or of event seriesGET httpsgraphmicrosoftcomv10Meeventsevent_id
bull Acceptdecline event invitationPOST httpsgraphmicrosoftcomv10Meeventsevent_idaccept
Body=hellip
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Some API Calls for Email used in the Sample
bull In order to Reply To (or Forward) event message the app first does a query for an event message that corresponds to the selected event
GET httpsgraphmicrosoftcomv10MeMailFoldersInboxmessages$filter=Subject eq subject and CreatedDateTime gt event_created_datetime
bull If the event message has been found the app uses createReply createReplyAll or createForward actions to create a draft message to be sent
POST httpsgraphmicrosoftcomv10Memessagesmessage_idcreatereply
bull After user clicks Send on Email page the app updates created messagePATCH httpsgraphmicrosoftcomv10Memessagesmessage_id
Body = hellip
bull hellip and then sends itPOST httpsgraphmicrosoftcomv10Memessagesmessage_idsend
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
DEMOInterop-REST-Mail-Contacts-Calendar-Sample (Meeting Manager)
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Whatrsquos New with the APIs
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Microsoft Graph Hybrid Exchange Support
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Microsoft Graph Hybrid Exchange Support
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Graph Entities amp Capabilities for On-Premises Users
bull Mailbull Mail folders
bull Messages
bull Item amp file attachments
bull Calendarbull Calendar groups amp Calendars
bull Events amp Calendar view
bull Reminders amp Reminder view
bull Contactsbull Contact folders
bull Contacts
bull Profilebull User profile per AAD
bull Profile picture
bull Mailbox Settingsbull Automatic replies
bull Language amp Time zone
bull Data extensibilitybull Extended properties
bull Capabilitiesbull CRUD
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
APIs Promoted from Beta to Production
bull Microsoft Graph (beta v10)bull MailboxSettings API to getset a userrsquos automatic reply time zone and
languagebull Extensions for message event contact and postsbull Extended Properties for message event contact post mail folder contact
folder amp calendar
bull Outlook REST API (beta v20)bull Outlook task APIs ndash Task groups task folders and tasks
bull TasksRead and TasksReadWrite permissions
bull Message delta sync APIs to sync incremental changes to mail in a specific folder
bull Mail Folder hierarchy sync APIs to sync mail folder hierarchy
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
New APIs Added in Beta
bull Microsoft Graphbull MailTips API to retrieve mail tips leveraged by outlook especially to check if
a recipient is out of office
bull Mentions API to getset users mentioned in a message
bull New EventMessageRequest type derived from Event Message to represent a message invite Provides info on changes from an older invite for updated meeting invites
bull Forward event API to forward an event to another user
bull Outlook REST APIbull Streaming notifications APIs for client apps that donrsquot have a server
endpoint to receive webhooks
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
REST APIs Exchange Web Services (EWS)
Full Feature Set Growing
OAuth Support Granular permissions Full access (Office 365 only)
Daemon Apps App-only Access App impersonation
Reach
Office 365
On-premises Exchange Coming to Exchange 2016 Exchange 2007 SP1 amp later
Hybrid Exchange Exchange 2016 (Preview) Exchange 2010 amp later
Outlookcom
Functionality
Mail Calendar Contacts amp Tasks
People APIs Preview
Apps using multiple services One auth one API endpoint No interop for other service APIs
Mobile-friendly Smart replyforward JSON Verbose SOAP requestresponse
Batching Batching across multiple APIs No batching across multiple APIs
Notifications Webhooks Streaming notifications
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Wrap Up
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
bull Powerful APIs to create powerful applications amp services to drive productivity
bull Secure Industry standard OAuth flow that respects your authentication policies
bull Easy to Use REST APIs that are easy to use on any platform you choose
bull Strategic THE APIs to use for Office 365 Hybrid Exchange 2016 amp Outlookcom
bull Production Ready Available now to build production apps amp services at scale
Build Line Of Business Apps using REST APIs
API Endpoint Area URL
Microsoft Graph
Dev how-to questions or issues httpstackoverflowcomquestionstaggedmicrosoftgraph
API doc issues httpsgithubcomOfficeDevmicrosoft-graph-docsissues
User Voice for everything else httpsofficespdevuservoicecom
Outlook REST API
Dev how-to questions or issueshttpstackoverflowcomquestionstaggedoutlook-restapi
API doc issues
User Voice for everything else httpsofficespdevuservoicecom
Thank You
Questions
copy Microsoft Corporation All rights reserved
Thank You
Questions
copy Microsoft Corporation All rights reserved