Skip to main content
A common problem in multi-calendar setups is that the same event appears more than once — for example, a family dinner added to both a shared household calendar and a personal calendar, or a team meeting that shows up in both a project calendar and an individual calendar. Without any deduplication, the card renders these as separate event chips stacked on the same day, which makes the view feel noisy and harder to read. Enabling combine_calendars tells the card to detect these duplicates and merge them into a single display event, with a configurable visual indicator that communicates the event spans more than one calendar source.

How Deduplication Works

When combine_calendars is true, the card compares every event loaded from your calendar entities. Two events are considered duplicates if they share the same title, start time, and end time. When a match is found, the events are merged into one chip, and a small indicator is added to show that the event came from multiple sources. The merged event inherits the color of the first matching source calendar unless overridden by an event_styles rule.

Configuration

combine_calendars
boolean
default:"false"
Set to true to enable event deduplication. When enabled, events with identical title, start time, and end time are merged into a single display event.
combine_style
string
default:"bars"
The visual style used to indicate that a displayed event was combined from multiple calendar sources. Accepted values:
  • bars — parallel colored bars along the side of the event chip, one per source calendar
  • stripes — a diagonal stripe pattern on the event chip background
  • dots — small colored dots displayed on the event chip, one per source calendar
combine_background
string
default:"primary"
Controls the background color applied to combined events. Accepted values:
  • primary — uses the color of the primary (first) source calendar
  • neutral — uses a neutral gray that does not favor any single calendar
  • A hex color string (e.g. '#E8EAF6') — applies a fixed custom color to all combined events
combine_calendars_width
number
default:"18"
The width in pixels of the combine indicator strip rendered on the event chip. Increase this value if you want the bars, stripes, or dots to be more prominent.

Example

The following configuration loads three calendar entities and merges any events that appear in more than one of them, displaying a colored bar strip on combined events.
type: custom:daylight-calendar-card
entities:
  - calendar.family
  - calendar.personal
  - calendar.work
combine_calendars: true
combine_style: bars
combine_background: primary
combine_calendars_width: 18

Using All Three Combine Styles

Choose the style that best fits your card’s visual theme:
# Bars — clear per-calendar color strips on the event side
combine_style: bars

# Stripes — subtle diagonal texture across the event background
combine_style: stripes

# Dots — compact colored dot indicators
combine_style: dots
Deduplication requires an exact match on title, start time, and end time. If the same real-world event is stored with slightly different times across calendars — for example, due to timezone conversion differences of even one minute — the events will not be merged and will appear as separate chips. If you notice duplicates that are not being merged, check whether the event times are truly identical in both calendar sources.
combine_calendars pairs well with virtual_calendars. Group related calendar entities under a virtual calendar for a unified toggle in the header, and enable combine_calendars to ensure that shared events from those grouped entities only appear once on the card.
Need finer visual control than the built-in options provide? The card also accepts a YAML-only uix.style escape hatch for injecting raw CSS into its shadow DOM.