Local calendar option

The new calendar trigger is great! Means if I want to make a schedule for my hvac or my lights I can simply make a calendar. Put events when the lights/hvac/whatever should be on and make an automation that turns the thing on when an event starts and turns it off when an event ends on that calendar.

Unfortunately though HA’s OOTB calendar options all involve other services. You have to configure google calendar or something that supports caldav and then manage your schedule calendar in that other service. This makes it more difficult to set this up and likely creates a dependence on a cloud service for what should be a simple task.

I would like the ability to add and manage local calendars from the calendar panel in the HA UI. That way I can make simple schedule calendars from there and use them in automations. No other services required.

I’ve been thinking about this and i think its a good idea. The direction we’d want to take is described here input_timetable · Discussion #751 · home-assistant/architecture · GitHub – basically a local ical.

Existing google calendar supports adding events via service, and it could work similarly for a local calendar.

I personally use google calendar, but have been interested in maybe developing this just for completeness. I think there are a few existing python local calendar libraries out there we could use.


Yea I can’t really claim credit for the idea since I did read a lot of the discussion on that ADR a while back (I actually forgot where I had read it until you linked it so thanks for that lol). I was surprised there wasn’t an FR about it so I figured I’d make one.

But yea in this thread I was trying to advise a user how to simplify a very complicated automation for scheduling their hvac with the new calendar trigger feature and realized while the calendar trigger is perfect for this task it’s a bummer I have to tell them “set up google first”. A lot of users have google calendars so I’m sure that’s not a dealbreaker for many people but it would be great to have a fully local option.

1 Like

Yeah I saw that and agreed with your comment.

One thing I am working on is a local Google calendar sync to improve it’s reliability and efficiency for multiple calendar triggers, but do still agree many folks want pure local.

1 Like

Couple of python caldav servers that look active, might be worth considering - radicale looks better supported. Probably simple to docker these for a hass.io addon but as a core user it would be nice if there was a core option

Yes please!!!
This just seems like it should be a fundamental part of Home Assistant, was very surprised it wasn’t.

Wow, yes please!
I just wanted to try calendar triggers and found myself asking “where the heck is the calendar?”.
It should really not exclusively rely on 3rd party services - especially not cloud ones - to create schedules for automations.

Radicale is available as an add-on in the Ulrar repo

Great suggestion. A caldav add-on + caldav integration sounds like a lot simpler option than a new local calendar integration.

FWIW, there are a few caveats concerning the configuration of Ulrar’s Radicale add-on. It’s not quite as friction-free as other add-ons.

The htpasswd users file must be /share/radicale/users and passwords must be hashed in md5. Ingress does not work, but the web interface can be found on port 5232.

This would be excellent to have a LOCAL calendar integration for home automation recurring things, and also the ability to SHOW automations that are set to run at certain times during the days based on existing automations. I have a bunch of “daily” automations that it would be very nice to see what automations are coming up.

In addition, functionality should include recurrence settings in parity with google calendar (Repeat every X daily/weekly/monthly/yearly), even so far as repeat every 3rd Tuesday and Thursday of every 2 months. Things like that would provide IMMENSE value to HA from a scheduling/time-trigger automation perspective.

Bonus points if input_datetime driven triggers are dynamically set/change in the calendar.