Office 365 Calendar Access

The location name should already be displayed in the location attribute in the array of events in the data attribute of the calendar entity.

If you aren’t seeing it in the HA core calendar pane (which it doesn’t for me), then you need to raise that with HA core. The information should be visible in Developer Tools and will be available for automations.

Did anyone find a way to copy / store attachments to a folder with this?

I’m currently setting up paperless ngx and it seems there seem to be no easy way to use the built in mail handler.

Suggestions to forward the relevant mails to another cloud provider, just to have them local isn’t the approach I want to go for. :slight_smile:

I’m considering breaking up the monolithic O365 integration into smaller, more manageable items. If you have a view, please comment here:

O365 → MS365 - A potential big change - your views needed

1 Like

Hey there. I’m having a heck of a time trying to get past the authentication part, and keep getting a “Uknown error occurred” after I paste the link. I’ve followed all the guidance and setup the proper permissions in Azure etc, but still the same result.

Any possible suggestions please?

You are probably using the client secret id, rather than the value. But always worth looking at the system logs, there is probably more info in there.

@RogTP im able to pull in my work calendar but the group calendar isnt working at all, the graph call is wrong and im not sure how to fix it, its calling the id as if it was a person not a shared group

wrong call
https://graph.microsoft.com/v1.0/groupid/calendars

if i call
https://graph.microsoft.com/v1.0//groups/groupid/calendar

it works perfect.

how do i trigger a group call on the id i already have the id in the shared mailbox area and ive checked the Enable support for group calendars button, nothing that i can see shows how to trigger that but the custom yaml which ive also set with

  - cal_id: group:xxxx

Please raise an issue on my GitHub with a diagnostics report.

turns out im an idiot, yaml had a space before

  • cal_id: group:xxx
    removing the space made it work, so my bad

Roger,

I got the original o365 working and that seemed to be relatively easy (I’m pretty familiar with graph and application permissions in Entra). I noticed you were moving to separate installs using the new configuration and one per function. I think that’s great, and downloaded and installed the MS365 - Calendar module and got THAT working as well, and removed the yaml entries for the o365 module and am using just the new one.

A couple of possible edits for your documentation. When searching in HACS for the repository, since it’s not in the main one and you need to use custom the steps are:

  • Search for rogerselwyn/MS365-Calendar to find the repository when using custom. Without your name at the beginning it can’t find it.
  • Download the repository
  • Once the repository is downloaded into HACS you need to find it and choose install. I am not super familiar with HACS so this step wasn’t clear to me, but I eventually figured it out. I suppose I should have read the HACS documentation more thoroughly - this isn’t on you lol.

I installed and got it up and running with alt-login, I was having issues getting the regular one to work on o365 module and the alt worked fine, so I just switched to that and continued using it for the ms365 module.

I have just a couple questions:

  • If I am loading the calendar for more than one user into HASS do I just add it as a second integration with a different email account name? Or is there a method to add an additional user using the existing entry? If I am adding it again do I do that from HACS or from the HASS integration page?
  • If I am doing a second user, since it’s delegated permissions, can I just use the same AppId and secret but a different email? Or do I need to add a different secret? Or a new separate application entry altogether?

Sorry if these are dumb questions - just trying to get clarity. I’m totally behind your new efforts and it’s awesome that I can actually write back calendar, todo, etc. updates from HASS. Graph is so cool. I have VOIP phones and freepbx all over the house in an intercom system, so being able to send TTS Voice announcements to them when events are upcoming will be way cool :slight_smile:

Oh and just one more note - if you have entraID P1 or 2 and have the ability to configure conditional access it’s a REALLY good idea to set a policy that only lets the public IP address of your home server access the app you configure in Entra, and limit access to only accounts that you want to retrieve calendars for. If you have a fixed IP you can use that address as the allowed location, and block all other locations. This severely limits the ability for anything else to access it - even if they somehow got your app id and secret.

If you’d like to add a documentation section on doing that, I’d be happy to write it. Let me know.

This works perfect for account that live in a tennant, but i am trying to add my personal microsoft account (which the documentation states i can) but i keep getting “Missing - Calendars.Read.Shared” after pasting the return URL.

in my application in Entra I have the following API permissions set:

  • user.read
  • offline_access
  • calendars.read
  • calendars.readbasic
  • calendars.read.shared

with these API permissions, when I log in with my personal account, i only see the app wants offline access and user read. it doesn’t mention the access to the calendar permissions (so I am not even able to grant those permissions with my personal account).

So i tried something else:
i removed the API permission “calendars.read.shared” from the app in Entra.
now when i log in with my personal account it shows i am allowing: offline access, User read, calendar read and calendar readbasic. so that should be working

BUT

the integration expects Calendar.read.shared as a minimal requirement (which isn’t even needed in my opinion)

Don’t put anything in the shared email address box at the bottom, you aren’t accessing a shared email, you are accessing your own.

you’re the best! been fumbling around with this for 2 days :joy:.

Well I look after the integration, so I should know. This will be handled better in the next release next week.

1 Like

Is it a work account?
I don’t use this integration but I managed to add my calendar from work with a VBA script in Outlook that copies the calendar to another account.