Microsoft Graph To Do API: How to get only Outlook tasks? - outlook

We have a solution built on the Outlook Tasks API, which is now deprecated and will stop working in August 2022.
We'd like to transition to the To Do API with as low effort as possible (for now).
So how to we get the Outlook tasks from the To Do API? And only Outlook tasks. I see that the To Do API returns two task lists with the well-known names "flaggedEmails" and "defaultList". Outlook tasks are in there. But is it always only Outlook tasks?
How does a Microsoft To Do Graph API query look like that only returns tasks that were created in Outlook to match the behavior of the old Outlook tasks API (if possible at all)?

The Query to get only the outlook tasks which were created and to fetch them using To DO list feature is currently not available, if you want this feature to be there you can raise a feature request :New feature request.
Thanks.

Related

How to generate and handle internal IDs in Microsoft Forms 365

I am trying to implement an evaluation survey for meetings, using Microsoft Forms over Office 365.
After I create and generate the link, I can get the info in an Excel file, but am missing a field with which I can link the survey's answers to the meeting.
Desired output in as seen in this image (all fields are already generated by Forms, except by that whose content is highlighted in yellow, which is the one I need to find out how to generate):
For the time being, I have 2 issues to solve:
How can I generate an ID for a meeting from Microsoft Outlook (where the meeting invitation was sent).
How can I pass that ID to Microsoft Forms.
Ideas about this or an alternative approach are welcome, thanks!!!
I think I have found a better approach:
To scrape all appointments in a period of time via API
To load appointment's data in MongoDB
To send personalized links to Outlook Forms questionnaires.
Here is the API documentation:
https://learn.microsoft.com/en-us/previous-versions/office/office-365-api/api/version-2.0/calendar-rest-operations

Relationship between Outlook JS API and Outlook REST API

I am looking to develop an addin for Outlook using the Office JS API. Reading the API documentation, there are a number of references to making a call to the Outlook REST API to do various things.
As an example, I want to retrieve a list of contacts from the local machine. I have seen posts suggesting I need to make a call to the Outlook REST API, however this doesn't make sense to me. If they are local/offline contacts, why would I need to do that? I feel as though I'm missing some relationship between the two.
A screenshot for the list of contacts I want to retrieve:
Question
Could someone outline how they fit together (if at all)? Is it expected that if I'm going to effectively use this API, I will also need to have my data "online", such that it's available from some REST service?
As the contacts are stored locally it can not be retrieved using REST API. Getting the contacts via Office JS is not possible today. We track Outlook add-in feature requests on ourĀ user-voice page. Please add your request there. Feature requests on user-voice are considered, when we go through our planning process.

Outlook REST API - Application Permissions or Background Services

I'm currently using Microsoft Graph, but have been running into its limitation on the request size. Seeing as how the Outlook REST API doesn't have that limitation and is supposed to be very similar to the Graph API for mail related functions, I wanted to use the Outlook API for sending messages with larger attachments.
But is there a way to get application level permissions with the Outlook REST API? Or make calls without a user? The authentication approach I'm using with Microsoft Graph is the one outlined at https://learn.microsoft.com/en-us/graph/auth-v2-service and it would be nice to be able to do the same with the Outlook API.
My app is registered at the Microsoft Application Registration Portal, but the permissions there are only for Microsoft Graph. I have seen an article that mentions being able to edit the manifest in order to get permissions working with other APIs (like the Outlook API), but wasn't too sure about that.

VBA vs. VSTO vs. Office.js vs. MS Graph vs. MS Flow

I have Outlook 2016 using Hosted Exchange. Here's what I need to be able to do:
Add Outlook tasks automatically when adding a contact via a custom form.
Send a premade .doc, .html, or .mshtml file via email to a set of contacts.
Keep track of who has received what premade email
I have some JS experience, but I'm not afraid of getting into .NET or VBA. I'm leaning towards VSTOs because, from what I've read, Office.js doesn't seem to allow for much interoperability between, say, Word and Outlook.
Any advice would be greatly appreciated.
From what you describe, I would step outside of Outlook all together and use theMicrosoft Graph API. Using Graph you could wire up a Webhook so you can capture when a new Contact is added and then send an email with a file attachment. You could then use Extended Properties to tag each Contact with the document/email they received.
I would also suggest taking a look at Microsoft Flow. For workflow scenarios like this, it may be a better fit.

Enumerating contacts and calendar events within an Outlook add-in?

I'm researching requirements for a new Outlook add-in. I'd like to determine if the current version of the JavaScript API allows add-ins to enumerate all of the current user's contacts and calendar events. I need to sync these contacts and events against a third-party system using a REST API.
Is a "get contacts" and/or "get events" (bounded by a date) query possible using the native Outlook add-in JavaScript API?
I'd prefer to do this using the native JavaScript API, but this could be something more suited to an Exchange Web Services call. Something involving makeEwsRequestAsync, perhaps?
The Mailbox API doesn't have any methods for accessing data beyond the context of the current item that the add-in is activated for. So yes, EWS is an option, as well as the Outlook REST APIs.
EWS can be quite difficult to work with, as the XML requests and responses are time consuming to work with (one typo and you're screwed). I would recommend the REST APIs instead.

Resources