Getting more attributes from Google Calendar

The current implementation of the Google Calendar component only retrieves a minimum of attributes from the Calendar API. There are much more of them and some would be really useful to have.

I have some amateur knowledge of Python and would give a try to a PR but after having a look at the code, I would be grateful if someone could do a quick go-through the way the data is actually retrieved.

Specifically, I see that in https://github.com/home-assistant/core/blob/4518dad83b47d63b76912c444ab4be159bc6af18/homeassistant/components/google/calendar.py#L546 an Event is loaded into a CalendarEvent which only defines (at https://github.com/home-assistant/core/blob/4518dad83b47d63b76912c444ab4be159bc6af18/homeassistant/components/calendar/init.py#L335)

    start: datetime.date | datetime.datetime
    end: datetime.date | datetime.datetime
    summary: str
    description: str | None = None
    location: str | None = None

    uid: str | None = None
    recurrence_id: str | None = None
    rrule: str | None = None

Couldn’t CalendarEvent be extended to account for GC attributes such as colorId or others? Is there a string dependency on that specific structure?

Interesting… I extensively use whole-day events from my Google Calendar(s), but would like to know if it is possible to have specific events (not whole day) to trigger automations.