build intelligent mail, contacts and calendar apps using ...€¦ · •oauth2 client credential...

36
Build Intelligent mail, contacts and calendar apps using the Outlook REST APIs Andrew Davidoff Senior Software Engineer

Upload: others

Post on 19-Jun-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 2: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 3: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 4: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 5: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 6: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 7: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 8: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 9: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 10: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 11: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 12: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 13: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 14: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 15: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 16: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 17: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 18: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 19: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 20: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 21: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 22: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 23: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 24: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 25: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 26: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 27: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 28: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 29: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 30: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 31: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 32: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 33: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 34: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 35: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

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

Page 36: Build Intelligent mail, contacts and calendar apps using ...€¦ · •OAuth2 client credential flow support for daemon apps •OAuth2 implicit grant flow for web apps •OAuth2

Thank You

Questions

copy Microsoft Corporation All rights reserved