Exploring the Microsoft Graph


While researching ideas and how-tos for the Hack Productivity hackathon, I have continuously asked the question, how can I unlock the productivity power of Office 365? For example, how would it be possible to implement my productivity processes into Office 365 which is such a large system with so many elements? There is only one answer, the Microsoft Graph. I have already gone over the opportunities for development with Office 365 in this post. Now let’s get started exploring the Microsoft Graph. However, we should review how it was before the creation of the MS Graph.

The Past Was Not So Great

Before the creation of the Microsoft Graph, every service had a separate endpoint to interact with the data. Office 365 is a vast platform, and there was an endpoint for SharePoint, Exchange, OneDrive, OneNote, etc. Essentially, a developer would need to build a wrapper for each API that connected each service. It was a headache. To compound the nonsense personal and business accounts authenticated against different endpoints. Clearly, a unified Graph endpoint was necessary. This leads me to the present.

The Present is Far Greater (and Improving)

Nowadays, we have a single API to call for each service including, authentication for personal and business accounts. As with any API, the Graph is versioned and allows for testing against the beta version. Let’s look at the service, as of 10/16/2017, what services are available in production and beta.

Services by Version

The documentation provides all the details you need. But here is a list for reference. Note that the beta services list is additive and includes everything in the production list.

Production Services

  • Users
  • Groups
  • Azure Active Directory
  • Excel
  • OneDrive
  • OneNote
  • Outlook (calendar and email)
  • People
  • Personal contacts
  • Planner
  • SharePoint
  • Webhooks

Beta Services

  • Intune
  • Teams
  • Organizational contacts
  • Outlook tasks
  • People and social
  • Project Rome
  • Reports

Where Do CAN We Go From Here

As the graph keeps improving, possibilities become more realizable. I have been working with the Graph since it was announced and have been waiting on SharePoint Lists. For example, I do everything in Office 365, including blogging. However, I wanted to create a blogging application that exposed specific blog posts from the legacy SharePoint lists blog. Trying to do this before the Microsoft Graph was possible but too much unnecessary work. Although, doing this now would be pointless because Delve is the new SharePoint blogging platform. That is just one example. It is clear the potential that the Microsoft Graph enables.

Exploring the Microsoft Graph

Microsoft has done a great job providing documentation and samples for exploring the Microsoft Graph. Check out the Graph Explorer to get a hands-on feel. It’s like using Fiddler, but with the all the calls preconfigured. Another great resource is the growing list of samples on GitHub. Already an ASP.NET developer? Check out the ASP.NET Samples.


This concludes exploring the Microsoft Graph. Albeit, the exploration is very high-level, but it is enough to get an understanding of what services the Graph provides. This was intended to be a high-level introduction the Microsoft Graph and expect to dive deeper into solving actual problems using the Graph and ASP.NET Core in future posts. Happy coding!


Development Opportunities in Office 365


Office 365 is a vast platform and every project has a research phase to discover the best approach. This last week I have been researching development opportunities in office 365. In doing this, I found a great resource; the Microsoft Tech Academy. The resource includes free training itemized under pathways. I went ahead and organized my learning using the bookmarks, due date and pathways features. The pathways I will be completing are the Microsoft Ignite 2017: Office Development and Developing with the SharePoint Framework. Additionally, I set a due date for October 26 and am registered for the Global Office 365 Developer Bootcamp in Boston on the 27th. Furthermore, couple these learning opportunities with my experience using Office 365 and this should give me enough ammunition to make a serious dent in the hack productivity hackathon.

Where to Start

I am never afraid to review documentation, and no one should be. I have always appreciated Microsoft’s efforts in creating excellent documentation with walkthroughs. Honestly, that is the best way to learn. Head over to dev.office.com/docs to find excellent documentation on development opportunities in Office 365. Office development includes e add-ins, connectors and the Microsoft Graph. For reference, I give the links here:

Moreover, I have found that Microsoft is grouping these development opportunities into 3 areas. The Microsoft Graph, Office Canvases and custom experiences. Let’s review these 3 areas starting with the Microsoft Graph.

The Microsoft Graph

This is the backbone of everything Office development. It is a single endpoint API to access data in Office. The capabilities of the Graph are quite large. Just to name a few, you can create, read, update and remove data about users, groups and mail. I am not going to go over everything available, but this is a suitable place to start when discovering what you can do with Office development. The below graphic, taken directly from Microsoft, provides an example of what possibilities exist with the Microsoft Graph. Additionally, the list of capabilities is always growing with each updated version.

microsoft graph graphic

Extending Office

The Office Canvases

These are the SharePoint and Office Add-ins. Add-ins extend the existing applications like Word, Outlook, PowerPoint, Excel and SharePoint. These are applications that can run in Office clients or embedded in Office documents. The only requirements are a web server, HTML, JavaScript and CSS skills and a manifest. But the extensibility doesn’t stop there. At its simplest form, an Add-in would be just an HTML page but using the Microsoft Graph and developing a custom service is where the magic really happens. Honestly, this is a great replacement for VBA and COM add-ins. I got my start developing professionally using VBA and it was a headache to support and distribute updates. This new add-in model allows the ability write and update in one place using the Office Store. Read more about the platform here.

Custom Experiences

Includes the Kitchen Sink

To really build productivity a custom experience is necessary, and will be my focus for the Hack Productivity hackathon. For example, a custom experience might include a web application, add-ins and a mobile application. Additionally, when I think of custom experiences I think of services like Wunderlist which includes a mobile application, a website and an Outlook add-in. There are really no limits with this approach other than imagination.


Honestly, this has only scratched the surface of development opportunities in Office 365, but it gives a good starting point. More opportunities include Bots, Connectors, Power Apps and Flow but each of these integrate nicely with Add-ins and custom experiences. Furthermore, the Microsoft Graph is the basis for all development in Office 365. Moreover, building quality productivity in Office will need knowledge of the Microsoft Graph. Find out more about the Microsoft Graph here and even try out its capabilities here. Finally, I will be streaming my experience with the Hack Productivity hackathon every weekday, 12:30pm-2:30 Eastern, at any of my broadcast channels which you can find on my homepage.