📅 Calendar Add-On + some calendar designs

I’m trying to use in a button-card the other script also, the family planner, I guess if there’s something to change due to card-mod new version.
For example, using this part of the code:

let calFabioState = states['sensor.fabio'].state;
      let calFabioData = states['sensor.fabio'].attributes.data;
      for (let i = 0; i < calFabioState; i++) {
        if (calFabioData[i].start_month == currentMonth) {
          let day = calFabioData[i].start_day;
          let summary = calFabioData[i].summary.replace(/'/g,'&apos;');
          let label = '';
          let startTime = calFabioData[i].start_time;
          if (calFabioData[i].whole_day) {startTime = 'Tutto il giorno';}
          if (calFabioData[i].label !== undefined) {label = '<span class="label">'+calFabioData[i].label+'</span>';}
          
          calendar = calendar.replace(`<div style="grid-area: c1_${day}" id="c1_${day}" class="event"></div>`, `<div style="grid-area: c1_${day}" id="c1_${day}" class="event"><span>${startTime} - ${summary}</span>${label}</div>`);
        }
      }

I can’t see the calendar events in the grid, i.e.:

PS: please note that I’m changing the calendar grid as I like :wink:

I really haven’t put any effort into that family planner design since my original post in this thread. Probably the entity atributes don’t match any more.
I’d advise you to look at this thread instead, that user has made a really beautiful family calendar solution.

1 Like

I cant figure out whats going wrong… as far as I can tell no sensors were created


Add-on: Hass Calendar Addon
Addon to consume caldav and google calendars and make calendar events available as sensordata in Home Assistant.

Add-on version: 0.500
You are running the latest version of this add-on.
System: Home Assistant OS 12.3 (amd64 / qemux86-64)
Home Assistant Core: 2024.5.4
Home Assistant Supervisor: 2024.05.1

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
System locale: en-US
Luxon locale set to: nl-BE
System timeZone: Europe/Amsterdam
Luxon timezone set to: Europe/Brussels
Number of calendars: 1
No previously stored events found
Error in getEvents: Error: ENOENT: no such file or directory, open ‘/config/366492799286-nmj0cqgp0umpe72luh596k90fgimgv3g.apps.googleusercontent.com’
at Object.openSync (node:fs:596:3)
at Object.readFileSync (node:fs:464:35)
at /app/index.js:320:37
at new Promise ()
at getEvents (/app/index.js:65:10)
at Task._execution (/app/index.js:495:27)
at Task.execute (/app/node_modules/node-cron/src/task.js:17:25)
at ScheduledTask.now (/app/node_modules/node-cron/src/scheduled-task.js:38:33)
at Scheduler. (/app/node_modules/node-cron/src/scheduled-task.js:25:18)
at Scheduler.emit (node:events:517:28) {
errno: -2,
syscall: ‘open’,
code: ‘ENOENT’,
path: ‘/config/366492799286-nmj0cqgp0umpe72luh596k90fgimgv3g.apps.googleusercontent.com’
}
Error posting events to sensor(s) at: Sat May 18 2024 22:30:00 GMT+0200 (Central European Summer Time)
Error: ENOENT: no such file or directory, open ‘/config/366492799286-nmj0cqgp0umpe72luh596k90fgimgv3g.apps.googleusercontent.com’
at Object.openSync (node:fs:596:3)
at Object.readFileSync (node:fs:464:35)
at /app/index.js:320:37
at new Promise ()
at getEvents (/app/index.js:65:10)
at Task._execution (/app/index.js:495:27)
at Task.execute (/app/node_modules/node-cron/src/task.js:17:25)
at ScheduledTask.now (/app/node_modules/node-cron/src/scheduled-task.js:38:33)
at Scheduler. (/app/node_modules/node-cron/src/scheduled-task.js:25:18)
at Scheduler.emit (node:events:517:28) {
errno: -2,
syscall: ‘open’,
code: ‘ENOENT’,
path: ‘/config/366492799286-nmj0cqgp0umpe72luh596k90fgimgv3g.apps.googleusercontent.com’
}

The error is quite readable here:

So you’re trying to work with a google calendar but have made an error with the service account keyfile. That filename looks odd and should be ending in .json.
And it also looks like you didn’t place the file in the right folder. Regarding the location I did notice on my own system that Home Assistant added a prefix to the addon config folder, so watch out for that.

Please read all instructions in the docs and the linked tutorials regarding obtaining and configuring the keyfile carefully and you should be able to get it working then.

Any idea how to share calendar with service account? Because when I try to share calendar it requeires other invited email to accept invite.

I just tested and for me the sharing option under google calendar settings still looks and behaves the same as in the screenshot in this post. I didn’t get the invitation expires text when I added another e-mail address.

I juat figured it out. The problem was I was trying to share family calendar which must be accepted by the invited side. Switched to non family calendar and it works.

Thanks for reply

Are you able to add events with your add-on?
My biggest gripe with the CalDav integration is I can’t add events on the calendar.

No, event creation is not supported.
You could probably create a REST command to achieve this. Did some quick research: this is the PUT method for caldav to create events: Calendaring Extensions to WebDAV (CalDAV).
Authentication is probably basicauth with your username/password

1 Like

Oh man, I was so excited to discover this add-on, went through the whole configuration, only to find out in the end that it doesn’t work with a family calendar on google :cry: Is there any workaround?

I remember a comment from an earlier user indeed. Did some google searches and it seems like it’s still not possible to share that type of google calendar with a service account. Maybe it’s possible to sync that calendar with another one that is share-able? I don’t know if that’s possible though.

Hi everyone! :wave:

First, I want to say a huge thank you to @kdw2060 for creating these beautiful calendar designs! Your work has been incredibly inspiring.

After seeing some recent posts about Google Calendar compatibility challenges, I wanted to share something I’ve been working on that might help - Calendar Card Pro.

Inspired by the elegant design shown in this thread, I built a dedicated Lovelace card that:

  • Works with any calendar entity in Home Assistant (Google Calendar, CalDAV, etc.)

  • Doesn’t require any special add-ons

  • Provides similar visual aesthetics with improved performance (no button-card or card-mod required)

  • Supports multiple calendars with color coding

  • Offers compact/expanded views and many customization options

I just released v1.0.0 and would love your feedback! You can find it here:

And again, thanks to everyone in this thread for the inspiration! :pray:

3 Likes

Very nice calendar, I love it!
Was wondering if I could also set the start_value in the yaml config to a dynamic date like the day after tomorrow instead of hardcoding one:

start_date: ‘2025-07-01’

I tried several options bit none seem to work.

This is currently not possible, but there already is a feature request for it. So stay tuned! :slight_smile:

1 Like

Hi,

is it possible to show an event that is longer as 1 day, show every day and not only at the start day?

Currently not. There is a feature request for this though, so stay tuned :wink:

2 Likes

Great Design

Hi. I keep getting the following error on startup. Any ideas?


-----------------------------------------------------------
 Add-on: Hass Calendar Addon
 Addon to consume caldav and google calendars and make calendar events available as sensordata in Home Assistant.
-----------------------------------------------------------
 Add-on version: 0.501
 You are running the latest version of this add-on.
 System: Home Assistant OS 16.0  (aarch64 / raspberrypi4-64)
 Home Assistant Core: 2025.7.4
 Home Assistant Supervisor: 2025.07.3
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
/app/node_modules/undici/lib/web/webidl/index.js:512
webidl.is.File = webidl.util.MakeTypeAssertion(File)
                                               ^
ReferenceError: File is not defined
    at Object.<anonymous> (/app/node_modules/undici/lib/web/webidl/index.js:512:48)
    at Module._compile (node:internal/modules/cjs/loader:1364:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
    at Module.load (node:internal/modules/cjs/loader:1203:32)
    at Module._load (node:internal/modules/cjs/loader:1019:12)
    at Module.require (node:internal/modules/cjs/loader:1231:19)
    at require (node:internal/modules/helpers:177:18)
    at Object.<anonymous> (/app/node_modules/undici/lib/web/fetch/util.js:12:20)
    at Module._compile (node:internal/modules/cjs/loader:1364:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
Node.js v18.20.3