So I’m currently running version 2023.3.4 and have set up the Google Calendar integration via the frontend menu. The issue I’m running into is trying to find a way to read the free/busy state of calendar events on the Calendar I’ve integrated. The documentation mentions an old config variable in google_calendars.yaml that as of version 2022.06 is no longer being used. Looking into this further I see that in the release notes for 2022.11, @allenporter authored a change that was integrated to revert Google calendar back to old API in order to be able to retrieve this busy/free event status.
At this point it’s not very clear to me how to be able to get free/busy status for Google calendar events and I’m hoping someone can help point me in the right direction. Thanks!
Hi.
I have a few comments:
- The change about free/busy API from 2022.11 is about reading calendars that are only shared with free busy information. For example, if you have a work account that only exposes a free/busy calendar to your personal account, then you integrate your personal account with home assistant. This didn’t change functionality, it just made sure those events still work. If you share free/busy calendars this way you’ll get events returned during the busy blocks.
- The yaml configuration variable didn’t let you get the free/busy state, but did allow you to disable looking at free/busy state to decide if a event is shown or not. You can still use it if you can make your own google_calendars.yaml file, but I don’t recommend it since the yaml brings in other problems, hence why it was removed. The default behavior is to only return “opaque” events and ignore “transparent” events. My rationale for removing the config option is that if this is a feature that calendar users want, then we should make an option for the UI that is supported by all calendars since this is not specific to google calendar, but i’ve yet to hear anyone actually want this.
Now to your real question about getting free/busy information: Its possible to expose new calendarattributes if we have use cases for them. Can you tell me more about what you’re trying to accomplish? (e.g. not “get free busy information”, but what’s the real world problem you’re solving, etc)
1 Like
This is all very insightful and I appreciate the quick response! Thanks! 
How I’ve always been doing things on my personal calendar before the Home Assistant integration is that I set events to busy for meetings appointments I have to attend to, and events to free for events that I don’t necessarily need to attend to but I still want to be aware of (e.g. maintenance schedules, live video streaming events, etc). I figure this is practice is pretty typical.
The automation I’m setting up would involve silencing broadcast messages from my smart speakers during times when I have busy appointments on my personal calendar as I don’t want the speakers making noise when I’m in a meeting, but I still want to hear these broadcast messages even during events that are set as free.
I suppose a short-term solution for now would be to create a separate personal calendar to be used only for events in which I’m still free/available but to me that’s not very ideal as I’d need to remember to add events to this “free” calendar instead of setting the busy/free option on the existing calendar when I create the event.
I’m open to other ideas if you have any.
I see, makes sense. My impression is the “free” events will not be returned in home assistant given the default configuration – is that what you are observing?