Building Taskwillow with Microsoft Outlook REST API

There is much more to the API than what meets the eye

Image for post
Image for post
https://www.taskwillow.com
Image for post
Image for post
I replied to this message

Interacting with the Microsoft REST API — the basics

Build Node.js Express apps with Microsoft Graph.

Using Postman with the Microsoft Graph API

https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages?$top=10&$search="size:1..500000"
<<********* hidden for privacy>>{
@odata.context”: “*********",
@odata.nextLink”: “*********",
“value”: [
{
@odata.etag”: “*********”,
“id”: “*********”,
“createdDateTime”: “*********”,
“lastModifiedDateTime”: “*********”,
“changeKey”: “*********”,
“categories”: [],
“receivedDateTime”: “2020–03–08T06:55:19Z”,
“sentDateTime”: “2020–03–08T06:55:16Z”,
“hasAttachments”: false,
“internetMessageId”: “*********”,
“subject”: “2 New Messages “,
“bodyPreview”: “*********”,
“importance”: “normal”,
“parentFolderId”: “*********”,
“conversationId”: “*********”,
“conversationIndex”: “*********”,
“isDeliveryReceiptRequested”: null,
“isReadReceiptRequested”: false,
“isRead”: false,
“isDraft”: false,
“webLink”: “*********”,
“inferenceClassification”: “focused”,
“body”: {
“contentType”: “text”,
“content”: “*********”
},
“sender”: {
“emailAddress”: {
“name”: “*********”,
“address”: “*********”
}
},
“from”: {
“emailAddress”: {
“name”: “*********”,
“address”: “*********”
}
},
“toRecipients”: [
{
“emailAddress”: {
“name”: “Chakravarty, Abhishek [*********]”,
“address”: “*********”
}
}
],
“ccRecipients”: [],
“bccRecipients”: [],
“replyTo”: [],
“flag”: {
“flagStatus”: “notFlagged”
}
}
]
}

So how was my outlook email client doing it?

Image for post
Image for post
here again..

Enter Outlook Extended Properties REST API

https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages?$top=10&$expand=SingleValueExtendedProperties($filter=(Id eq ‘Integer 0x1081’))

Understanding #3 above is what is key here.

Image for post
Image for post

We are getting close….

{
@odata.etag”: “W/\”CQAAABYAAACo6AGiauigTJcXIeLF+Z/FAAM6Zayd\””,
“id”: “*****”,
“receivedDateTime”: “2020–03–06T15:55:07Z”,
“subject”: “[EXTERNAL] You have 17 todos”,
“bodyPreview”: “*****”,
“body”: {
“contentType”: “text”,
“content”: “*****”
},
“singleValueExtendedProperties@odata.context”: “https://graph.microsoft.com/v1.0/*****/singleValueExtendedProperties",
“singleValueExtendedProperties”: [
{
“id”: “Integer 0x1081”,
“value”: “103”
}

]
},
Image for post
Image for post

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store