Local Calendar Enhancements

Looks great, but a few things I think would be awesome:

Calendar Level

Add Additional Settings

  • Calendar_Class - see below
  • ICON
  • COLOR - Foreground/Background

Add some items to the config

  • Import/Export ICS
  • Ability to Modify Calendar_Class/Icon/Color settings

Add some service calls

  • AddEvent - Allows for scripting the creation of events in response to anything you can dream up
  • RemoveEvent - Allows for scripting to cleanup of events, or dynamic management of events
  • ModifyEvent - Allows for automation to manage internal events, events we can see on a calendar, but can be managed by automations.
  • ImportEvents - Allows for automation of importing ICS files
  • ExportEvents - Allows for automation of exporting ICS files

Small tweak to how calendars are listed/shown

Using the new calendar_class or the end user can override using the other new settings, we go from:

Current
current-checked
current-unchecked

New
new-checked
new-unchecked

   ---------- ------------------------------------
  | checkbox | ico: calendar.icon | calendar.name |
  |       fg: calendar.color.foreground           |
  |       bg: calendar.color.background           |
   ---------- ------------------------------------

Calendar_Class example

Contains 2 new class entries, the default, and an example of a user created entry

  calendar_class:
    - name: Default
      id: default-calendar-class
      icon: mdi:calendar
      # Should there be a dark/light version of this setting?
      color:
        foreground: whateverisbeingusednow
        background: whateverisbeingusednow
    - name: Family
      id: family-shared-calendar
      icon: mdi:family
      color:
        foreground: white
        background: light-blue

Event Level

Add Ability to Edit Single/Series

Additional Settings

  • Event_Class - See Event_Class for more information
  • Icon
  • Color - Foreground/Background

Change to display of Event

Current
current-event

New
new-event

   -------------------------------------------------------
  | ico: event.icon               | event.summary          |
  | fg: calendar.color.foreground | event.color.foreground |
  | bg: calendar.color.background | event.color.background |
   -------------------------------------------------------

Event_Class Example

Contains 2 new class entries, the default, and an example of a user created entry

  event_class:
    - name: Default
      id: default-event-class
      icon: none
      defaults:  
        # Ok this may be reaching a little, but was thinking if you selected a birthday event_class, 
        # it would automatically change to all day, and set repeat yearly by default.
        # Similar to how when you select All Day now, it removes the times from the dates.
        all_day: true/false
        repeat: none/yearly/monthly
      color:
        foreground: whateverisbeingusednow
        background: whateverisbeingusednow

I am hoping to begin trying to do some of this myself in Jan/Feb 2023.
But currently, my skillsets cover just about everything except Python. (working on that now)

Why do dates show in American format and not dd/mm/yyyy?

Hi
This can be changed with templating a dashboard sensor.

{{ as_timestamp(state_attr('calendar.yourcalendar', 'start_time'))  | timestamp_custom('%a %d-%m-%Y om %H:%M') }}

There is more to improve I think with the local calendar.
The looks and user friendlyness in the Home Assistant Android app are far from nice to have.

Hello,

Any update @jazco99 plz ?

I’m very interested by this feature, thanks a lot.

DR

+1 (I hit the vote button)
I am mainly interested in the Service Calls, especially in the ‘RemoveEvent’, so I can trigger a post event action that cleans up the past events, but the import function will be appreciated as-wel :grinning:

I also want multiple attendees support so my family can replace our current online family calendar with a local option.