Microsoft To-Do

It would be amazing if HA could support Microsoft To-Do (the successor of Wunderlist).

The data is accessible via Outlook REST API:


I’ve voted for this as I have looked at the Outlook API reference and whilst I understand it at a high level I am not proficient enough to make use of it (yet :slight_smile: ).

However it seems to me that providing some support for the To-Do app might lead almost effortlessly to support for other Outlook aps such a Mail and Calendar.

One of the things that always surprises me about HA is the strength of alliance with Google technologies. Is that because Google make it easy?

I also think this might be a throwback to the 1990/2000’s when anything MS (M$) was deemed evil and Google (and Linux) rightly to some extent had an aura of being on the side of ‘good’.

Whilst I do think Google are still ok, nowadays I trust MS and surprisingly Apple a lot more as their entire raison d’état d’etre is not advertising and hence data collection.

2 Likes

I’m thinking “d’etre” would be better here ???

Thanks. I’ve edited the post.
In my defence I’m English and surely you know we expect to be universally understood? And if all else fails we just shout.
Because that will work…

1 Like

+1 for that!
MS To-Do is my favorite To-Do App

3 Likes

One of the things that always surprises me about HA is the strength of alliance with Google technologies. Is that because Google makes it easy?

@klogg I’m not sure what about Google services but recently I tried to implement some integration prototype with no luck :slightly_frowning_face: I wasn’t able to authenticate my API client to get tasks:

  • I’ve tried different AD accounts in Azure: my default one and with Office 365 development subscription. When I’m registering the app in my default AD tenant I’m getting OrganizationFromTenantGuidNotFound error while trying to use the access token. When I’m using the Office 365 development tenant — NoPermissionsInAccessToken.
  • Tried different permissions settings: https://outlook.office.com/Tasks.Read and https://graph.microsoft.com/Tasks.Read scopes.
  • I’ve tried both API versions: beta Graph API and Outlook 2.0 API. No difference, getting similar errors.

API and the process of app registration are documented pretty well so implementation of the integration with Microsoft To Do looks pretty straightforward but auth doesn’t work for me :man_shrugging:

Maybe I’m doing something wrong and it makes sense to reach the support team.

1 Like

Oh, right after I sent the previous message I tried to authenticate using an application associated with the personal account (not my Active Directory) and it worked!

I don’t know if someone working on this feature and if not I can try to find some time to implement a custom component. But I don’t think you can rely on me because I’m not a Home Assistant developer.

2 Likes

Yeah! :tada: I don’t think anybody else is working on such a feature. There’s nothing in the forum or on Github.
A custom component would be really amazing! But at least a “raw” python script that can authenticate and retrieve and send tasks would be much much helpful!
Thank you very much for your effort!

Hey, I was able to implement the first version of integration :slightly_smiling_face: Please check this repo: black-roland/homeassistant-microsoft-todo.

The component is far from being perfect and work is still in progress. Currently, it’s only possible to create new tasks for the “Tasks” list with reminders support.

I wish setup process to be straightforward but I added some screencast that should help.

6 Likes

Wow thank you! I’ll try it out ASAP :slight_smile:

It’s working :tada: Is it possible to add a config entry for the callback URL? I had to hack my cloud URL into the code, because my local base URL is only HTTP.

Awesome!

As far as I know, other Home Assistant integrations just use the configured base URL. I’d rather not adding the callback URL option to be consistent.

But the callback URL is used only once for authorization and it doesn’t have to be accessible from the Internet (it must be accessible for your browser only). So you could change the base_url option to the cloud URL or localhost, authorize, and change base_url back.

2 Likes

Good to know! :+1:

I understand. Then it’s really easy without a config entry :slight_smile:

When trying to authorize I get a 500 internal error on the front end and the following in the logs:

oauthlib.oauth2.rfc6749.errors.InvalidClientIdError: (invalid_request) AADSTS50194: Application '102c152a-4569-421f-9096-7045b3d150ef'(HomeAssistant) is not configured as a multi-tenant application. Usage of the /common endpoint is not supported for such applications created after '10/15/2018'. Use a tenant-specific endpoint or configure the application to be multi-tenant.

I do have 2 MS accounts, one work one personal. I setup the Azure account using the personal account and I’m use the same one when trying to authorize.

Any suggestions?

Thanks in advance.

I managed to get past this error by editing the Manifest file within the App I created in Azure to allow for multi-tenent environment’s:

"signInAudience": "AzureADandPersonalMicrosoftAccount"
2 Likes

Hi Eoin, I have the same issue. Could you explain what you did exactly? I cannot get it to work…

Log into the Azure Portal: https://portal.azure.com/#home
Navigate to: App Registrations
Select the App you created when following: https://github.com/black-roland/homeassistant-microsoft-todo
Click on: Manifest (left hand menu)
Find the section for: “signInAudience”
Change the current value to: AzureADandPersonalMicrosoftAccount
Click Save. That should be you.

Oh, it seems the registration UI changed and instructions are out of date.

As an alternative to the manifest editing you can try to select “Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)” while registering a new app in Azure:

Thanks, got it working!