I am displaying my Office 365 calendar on Home Assistant (Version 2)

My objectives:

  • Recover my O365 calendar
  • Display it on a full-screen Home Assistant view

Attention, change of integration HA

This is the new version of the page dedicated to the integration of MS365 calendars after a change in the integration of its author, for all intents and purposes, here is the previous version:

Install HACS integration

Be careful, you need version 2024.6.0!!

It is this integration that I will use:

So I go to HACS, now we no longer use the button at the bottom right to add an integration, we go to the search line, I type 365 and I find the new integration:

 

[This page is not finished, I am waiting for HA version 2024.6.0 to continue]!!

I'm relaunching Home Assistant.

I create the link between Azure Microsoft and Home Assistant

I connect to the Azure portal (application records)

I add a new application registration, I choose the 2nd account type and I put a web redirect URL which is https://login.microsoftonline.com/common/oauth2/nativeclient

Once the record is created, I will generate a Secret client access, left column, I click on:

To do so, I click on:

I take the longest duration proposed and click on Validate. I note the value thus generated.

The documentation indicates that you have to configure the API authorisations, I do not need them to consult the calendar, if I want to do something else with this API, I will come back to change that here.

On all these screens, I noted two pieces of information that I retrieved:

  • Application ID (customer) in the Overview
  • The value customer secrecy that was generated at the time of its creation. If I forgot to write down this value, don’t worry, I delete the created customer secret and recreate one by not forgetting to write down the value.

Manual configuration of Home Assistant

There is no automatic configuration, we must add section o365: in configuration.yaml

As usual, to find my way around, I will create a file o365.yaml in the config folder and then I add the line

o365: !include o365.yaml

in configuration.yaml

I add these lines in o355.yaml

accounts: - account_name: moncalendar # Do not use email address or spaces client_id: !secret o365-client_id client_secret: !secret o365-client_secret alt_auth_method: False enable _update: False

I fill in the two lines of secrets.yaml with the values noted in the previous paragraph.

o365-client_id: xxxxxxxxxxxxxxxxxxxxxxx o365-client _secret: xxxxxxxxxxxxxxxx

I relaunch Home Assistant

Validate link O365 <=> Home Assistant

In the settings, I find a notification 

I click on Link O365 account

I log in to my Microsoft 365 account

Once identified, the page becomes blank and it is the URL that is in the URL bar that should be noted, it looks like https://login.microsoftonline.com/common/oauth2/nativeclient?code=xxxxx

I copy the whole url so displayed, I close the window.

I paste the copied URL into the Returned URL field and then validate

The link is established.

Select calendars to display

At this point, I go to Development Tools/States to check if my calendar is correctly detected.

To filter, I type calendar, here is the result:

So I see that my calendar but also all those who are shared with me go up.

I'm not going to use resources to keep entities up to date that I'm not going to use, so I'm only going to keep my calendar.

For this, I disable all entities that I do not want to see in my calendar.

I relaunch Home Assistant

Check that the calendar is working

I notice that on the left, a link has been added, I click on it and after a few seconds, magical, my appointments appear.

For the sake of confidentiality, I reduce the size of the screen to post this image:

Show calendar on a view

At this stage, I have not found how to display this beautiful calendar in a view, I find it a pity, I hope that if someone knows how to do it, they will inform me.

So I looked for a map to display my calendar in full screen on my dashboard.

There are several maps, I think I have tested them all, but there is only one that made me see a calendar that is properly displayed in full screen, rather well thought out and simple to implement.

This is the custom:atomic-calendar-revive card

Installing the Atomic Calendar Revice card

To install it, I go to HACS

Adding a Calendar view

I am therefore adding a panel view with the calendar-month icon, which has a calendar url.

The code of the new card is:

Type: custom:atomic-calendar-revive name: Calendar Lionel enableModeChange: true defaultMode: Calendar entities: - calendar.calendrier _moncalendrier refreshInterval: 14400 showDate: true disableCalLink: true dimFinishedEvents: true

The result is rather nice: