Skip to content

Latest commit

ย 

History

1,431 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Calendar Card Pro for Home Assistant

hacs GitHub Release Downloads Downloads@latest

Calendar Card Pro Preview

โ˜• Support This Project

If you find Calendar Card Pro useful, consider supporting its development:

Buy Me a Coffee GitHub Sponsors

ย 

๐Ÿ“– Documentation

Read the Documentation

This README covers installation and a quick start. Everything else โ€” every configuration option, all features and worked examples โ€” lives on the documentation site, which is searchable and always matches the latest release.

๐Ÿš€ Installation Set the card up via HACS or manually
๐Ÿ“Œ Usage Add the card and configure it visually
โœจ Features & Configuration Weather, templates, layout, actions, and more
๐Ÿ“š Configuration Options Complete reference for every option
๐Ÿ’ก Examples Ready-made configurations to copy
๐Ÿ†• Release Notes Full history of every release

ย 

1๏ธโƒฃ Overview

๐Ÿ” About

Calendar Card Pro was inspired by a beautiful calendar design using button-card and Hass calendar add-on shared in the Home Assistant community. While the original design was visually stunning, implementing it with button-card and card-mod led to performance issues.

This motivated me to create a dedicated calendar card that excels in one thing: displaying upcoming events beautifully and efficiently.

Built with performance in mind, the card leverages intelligent refresh mechanisms and smart caching to ensure a smooth experience, even when multiple calendars are in use.

โœจ Features

  • ๐ŸŽจ Sleek & Minimalist Design โ€“ Clean, modern, and visually appealing layout.
  • โœ… Multi-Calendar Support โ€“ Display multiple calendars with unique styling.
  • ๐Ÿ“… Compact & Expandable Views โ€“ Adaptive views to suit different dashboard needs.
  • โš™๏ธ Visual Configuration Editor โ€“ Intuitive interface for effortless card setup.
  • ๐Ÿ”ง Highly Customizable โ€“ Fine-tune layout, colors, event details, and behavior.
  • ๐ŸŒฆ๏ธ Weather Integration โ€“ Display weather forecasts alongside your calendar events.
  • โšก Optimized Performance โ€“ Smart caching, progressive rendering, and minimal API calls.
  • ๐Ÿ’ก Deep Home Assistant Integration โ€“ Theme-aware with native ripple effects.
  • ๐ŸŒ Multi-Language Support โ€“ Available in 35 languages, community contributions welcome!

๐Ÿ”— Dependencies

Calendar Card Pro requires at least one calendar entity in Home Assistant. It is compatible with any integration that generates calendar.* entities, with CalDAV and Google Calendar being the primary tested integrations.

โš ๏ธ Important: Ensure you have at least one calendar integration set up in Home Assistant before using this card.

โฌ†๏ธ back to top

2๏ธโƒฃ Installation

๐Ÿ“ฆ HACS Installation (Recommended)

The easiest way to install Calendar Card Pro is via HACS (Home Assistant Community Store).

Open in HACS

Steps:

  1. Ensure HACS is installed in Home Assistant.
  2. Go to HACS โ†’ Frontend โ†’ Custom Repositories.
  3. Add this repository: https://github.com/alexpfau/calendar-card-pro as type Dashboard
  4. Install Calendar Card Pro from HACS.
  5. Clear your browser cache and reload Home Assistant.

๐Ÿ“‚ Manual Installation

๐Ÿ“– Click to expand manual installation instructions

Steps:

  1. Download both files from the latest release:
    ๐Ÿ‘‰ calendar-card-pro.js and editor.js

  2. Put both files into a folder of their own under www:
    /config/www/calendar-card-pro/

    The card ships as two files: calendar-card-pro.js and editor.js. Both must sit in the same folder, and calendar-card-pro.js is the only one you name as a resource โ€” the card loads the editor itself, when you open it. Use a subfolder rather than /config/www/ directly: that folder is shared by every hand-installed card, and editor.js is a common enough name that another file can take it. HACS does all of this for you, which is why it is the recommended route.

  3. Navigate to: Home Assistant โ†’ Settings โ†’ Dashboards โ†’ Resources โ†’ Add Resource

  4. Add the resource to your Lovelace Dashboard:

url: /local/calendar-card-pro/calendar-card-pro.js
type: module
  1. Clear cache & refresh your browser to apply changes.

โฌ†๏ธ back to top

3๏ธโƒฃ Quick Start

Add the card from your dashboard's โž• Add Card picker โ€” search for "Calendar" โ€” then click the three dots (โ‹ฎ) โ†’ Configure to open the visual editor.

Shortcut (Home Assistant 2026.6+): In the card picker, switch to the By entity tab and pick any calendar.* entity. Calendar Card Pro is offered under Community, already pointed at that calendar and previewed with its real events.

Prefer YAML? This is a complete, working configuration:

type: custom:calendar-card-pro
entities:
  - calendar.family
days_to_show: 3
show_location: false
show_month: false

Basic Configuration

Swap calendar.family for one of your own calendar.* entities and you have a working card.

โžก๏ธ From here, Usage walks you through multiple calendars, per-calendar colors and compact mode. Every available option is listed in the Configuration reference, and more ready-made setups are in Examples.

โฌ†๏ธ back to top

4๏ธโƒฃ What's New

โžก๏ธ View the Full Release Notes for a complete list of features.

Latest Release: v4.2

  • ๐Ÿง‘ Shared Events, Clearly Marked: Merged duplicates show every contributing calendar's label instead of only the first; set duplicate_accent_color to give shared events a color of their own
  • ๐Ÿ› Countdowns Follow Calendar Dates: Countdowns now say "tomorrow" for the next date and stop skipping days between later dates; same-day starts keep clock countdowns, while distant dates retain natural month/year wording
  • ๐Ÿ› Allowlists & Blocklists Work Together: Combined filters now keep only events that match the allowlist and escape the blocklist, rather than silently ignoring the blocklist

v4.1

  • ๐Ÿท๏ธ All-Day Events, as a Pill: allday_badge draws a rounded pill in each calendar's own color, around the event title the way Google and Apple Calendar do, or beside the clock, allday_badge_style offers four shapes and allday_badge_color picks the color they are drawn in โ€” each calendar's own, the row's own text color, or one you name. Off by default; try allday_badge: title first
  • ๐ŸŽจ Follow Home Assistant's Calendar Colors and Icons: Set accent_color to home-assistant and each calendar takes the color Home Assistant holds for it. Set its label the same way for that calendar's icon
  • ๐Ÿง‘ A Person's Photo in Front of Their Calendar: Set a calendar's label to a person entity ID and the card shows that person's picture โ€” faces instead of words on a household dashboard
  • ๐Ÿ—‚๏ธ Split One Calendar by Event Type: event_type takes all, timed or all_day, card-wide or per calendar โ€” list one calendar twice for a color on each, and Duplicate in the editor builds it for you
  • ๐Ÿ” Two New Per-Calendar Filters: allday_expires_at retires an all-day event partway through the day, so a bin collection stops sitting on the card until midnight, and days_of_week keeps one calendar to weekdays or weekends
  • ๐ŸŽ‚ Ages on Birthdays, Counts on Anniversaries: Write YEAR=1976 in a birthday event's description and the card appends the age to the title โ€” nothing to configure, and it stays right every year
  • โœ๏ธ Rewrite What an Event Says: replace_pattern, replace_with and replace_field rewrite one field of a calendar's events as the card draws them, leaving the calendar untouched. One Calendar, Many Purposes puts this and three of the options above into a single card

v4.0

  • ๐Ÿ—“๏ธ Column View: Lay the days side by side, one column each, instead of stacking them โ€” the same agenda, rotated, with its own per-view overrides and a responsive fallback to the list layout
  • โš™๏ธ Rebuilt Visual Editor: Nine panels built on Home Assistant's own form components, with a search box that finds any setting by name or YAML key, a customized-only filter, per-calendar settings, and per-view exceptions
  • โšก 41% Smaller to Download: The editor moved into a file the card fetches only when you open it, taking it and all its translations off the path every dashboard pays for
  • โšก Fewer Round-Trips on Every Page Load: One card load asked Home Assistant for the same events up to four times; requests are now deduplicated, and two display-only switches no longer discard a valid cache entry
  • ๐ŸŒ Eleven Editor Languages: Nine newly translated in full โ€” German, Estonian, Italian, Latvian, Lithuanian, Norwegian Bokmรฅl, Polish, Slovak and Swedish โ€” alongside US and British English, with per-string fallback so a partial translation still renders
  • ๐Ÿ› Dates, Clocks and Week Numbers: Week numbers were wrong for one date in seven outside UTC, the clock format disagreed with Home Assistant's own locale data for 33 of its 64 languages, and first_day_of_week: system returned Monday to everyone
  • โš ๏ธ Breaking: Manual installs now copy two files, event_icon_vertical_alignment defaults to top, and weather badges are styled through custom properties instead of inline styles

v3.6

  • ๐Ÿ“š A Documentation Site: The full manual now lives at calendar-card-pro.alexpfau.com โ€” a page per feature, a complete configuration reference, and ready-made examples
  • ๐Ÿ› One Stray Line of YAML Broke the Card: A bare - left in the entities: list replaced the whole calendar with a red error box; malformed entries are now discarded
  • ๐Ÿ› Per-Calendar Settings Applied Late: Editing a per-calendar label, colour or toggle did nothing until the cache expired โ€” edits now apply immediately
  • ๐Ÿ› Disappearing and Ellipsised Text: Titles gained a โ€ฆ when nothing had been truncated, and long words in descriptions and locations were clipped mid-character with no warning
  • ๐Ÿ› Multi-Day Countdowns: Each row of a split multi-day event counted differently; every row now counts whole calendar days to its own date

Older releases are covered in the Full Release Notes.

โฌ†๏ธ back to top

5๏ธโƒฃ Contributing

Want to improve Calendar Card Pro? I welcome contributions of all kinds โ€” whether it's fixing bugs, improving performance, or adding new features!

git clone https://github.com/alexpfau/calendar-card-pro.git
npm install
npm run dev

Then open a Pull Request against the dev branch.

  • ๐Ÿ“‹ Contributing guide โ€” full workflow, coding standards, and how to add a translation
  • ๐Ÿ—๏ธ Architecture documentation โ€” module responsibilities, data flow, and performance design
  • ๐ŸŒ Adding a translation? The card speaks 35 languages and the visual editor 11 โ€” new ones are always welcome.

๐Ÿ’ก Got a feature request? Open a GitHub Issue or start a discussion!

๐Ÿ† Acknowledgements

Calendar Card Pro is released under the MIT License. Full third-party attributions are listed in NOTICE.

โฌ†๏ธ back to top

About

๐Ÿ“… A sleek and highly customizable calendar card for Home Assistant, designed for performance and a clean, modern look.

Topics

Resources

Contributing

Stars

1.2k stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages