Skip to main content
Day badges are small labeled chips or icon indicators that appear on individual calendar day cells when a set of conditions is met. You define a list of badge objects under day_badges, and the card evaluates every badge against every event on each day — showing the badge on any day where at least one event satisfies all of the badge’s conditions. Multiple badges can appear on the same day simultaneously, which makes them well-suited for layered annotations like recurring schedule reminders, birthday markers, or availability flags.

Badge Fields

Each entry in day_badges supports the following fields:
conditions
object
required
A map of condition keys to their expected values. At least one event on the day must satisfy all specified conditions for the badge to appear.
text
string
The text label displayed inside the badge chip. You can use text oricon; text takes precedence if both are provided.
icon
string
An MDI icon name (e.g. mdi:cake-variant) displayed inside the badge. Will be dropped if text is also provided.
background_color
string
A hex color string for the badge’s background. Defaults to the card’s accent color if not specified.
color
string
A hex color string for the badge’s foreground (text and icon color). Controls the contrast against background_color. If omitted, the card picks a readable color automatically.
size
string | number
Overrides the overall size of the badge chip. Accepts a number (interpreted as pixels) or a CSS length string such as '32px'.
font_size
string | number
Overrides the font size of the badge label text. Accepts a number (interpreted as pixels) or a CSS length string such as '11px'.

Condition Keys

The conditions object matches against events on each day. All specified keys must match at least one event on that day for the badge to appear. The following fields are supported:
conditions.calendar
string
A Home Assistant calendar entity ID (or virtual calendar ID). The badge appears on days where at least one event belongs to that calendar.
conditions.title
string
A substring to match against event titles on a given day. The badge appears on days that have at least one event whose title contains this string. Prefix with exact: for an exact match or regex: for a regular expression.
conditions.description
string
A substring to match against the event description field. Supports the same exact: and regex: prefixes as title.
conditions.location
string
A substring to match against the event location field. Supports the same exact: and regex: prefixes as title.
conditions.all_day
boolean
When true, the badge appears only on days that have at least one all-day event. When false, only days with at least one timed event match.
conditions.past
boolean
When true, the badge appears on days where at least one event is in the past. When false, only days with non-past events match.

Legacy condition aliases

For backward compatibility, the card silently accepts several alternative spellings of the condition keys above. New configurations should use the canonical names (title, summary, location, calendar, all_day), but the following aliases continue to work:
AliasEquivalent to
title_contains: footitle: 'contains:foo'
summary_contains: foosummary: 'contains:foo' (same as title)
location_contains: foolocation: 'contains:foo'
calendar_entitycalendar
entity_idcalendar
entitycalendar
all_day_eventall_day (bidirectional)

Examples

Show a cake icon on days with birthday events

This badge watches calendar.birthdays and renders a pink cake icon on any day that calendar has an event.
day_badges:
  - conditions:
      calendar: calendar.birthdays
    icon: mdi:cake-variant
    background_color: '#E91E63'

Show a badge on days with a standup meeting

This badge appears on any day that has an event whose title contains “standup”, making it easy to spot those days at a glance.
day_badges:
  - conditions:
      title: standup
    text: Standup
    background_color: '#1565C0'

Mark all-day event days with an indicator

This badge shows a calendar icon on every day that has at least one all-day event.
day_badges:
  - conditions:
      all_day: true
    icon: mdi:calendar-today
    background_color: '#FF9800'

Combine conditions for precise targeting

You can stack multiple conditions in one badge. This example shows a star icon only on days that have an event from calendar.work with “review” in the title.
day_badges:
  - conditions:
      calendar: calendar.work
      title: review
    icon: mdi:star
    background_color: '#FFC107'

Show multiple badges on the same day

All badge definitions are evaluated independently, so more than one can appear on the same day. Here, a day that has both a birthday event and a work standup will show both the cake icon and the “Standup” chip.
day_badges:
  - conditions:
      calendar: calendar.birthdays
    icon: mdi:cake-variant
    background_color: '#E91E63'
  - conditions:
      title: standup
    text: Standup
    background_color: '#1565C0'