see new function in v2.0.1. The avoidance of duplicates works only for new imported entries by CSV. Means, you need to clean your current entries first.
Thnaks so much. Will give a try in the next few days.
Trying to figure out how to add types if possible. I want to add religious holidays, US Holidays, and a few others.
How can they be added. Like Easter, Palm Sunday, New Years Eve, Halloween, etc.
Some have floating dates meaning they change every year. So I figure if I need to I would have to add Easter for 2026, 2027, 2028, etc.
BTW the csv seems to work okay, just tried it once.
For fixed holidays you can use the “custom” type. For the floating dates, that’s not possible today. Please, make a feature request in Github to see how much interest exists. As of now the entire architecture is built for fixed annuals.
Update: I found an easy way to use the “holiday” library, that already exists in any HA instance from the python project. I’m working on this new feature now.
@carltonwb , happy to announce v2.1.0 which includes import of all kind of holidays from +250 countries!
With v2.2.0 you get much more features in your annual lovelace card:
-
Compact card with flexible sentence

-
Animated icons

-
Tap/hold actions
As always — all build into Card Editor UI - no yaml coding or card-mod
.
Just released v2.3.0 to give you even more flexibility. You can now seperate between “name” and “last name”. That’s useful if you want a compact card to show only the short name and when clicking on it, you navigate to the full card with entire list of “full_name” (name+last name).
If you have already created all your annuals, you can export them as CSV and add the “last name”. This is not required as this new feature is fully backwards compatible.
Spent a bit more token and just released 2.4.0 with a handy timeline visualization:
This is the compact layout for your main dashboard. You can define a navigation to your entire list view or sub-dashboard through the “More” button.
…and as always all built-in and customizable in card editor without YAML or card-mod:

So, what’s next? Maybe an OOTB reminder to prepare for an important birthday? Let me know your thoughts.
Cheers
Great integration. but it would be nice to see the date on the events.
Birthday Sally 29 Dec
Thanks
Where do like to see the date exactly? The sentence on the timeline card is currently hardcoded. To add the date behind the current text in () would be an option. For the list or compact card I can easily add the date field, and you can sort and add in the way you like.
Next to the person name would be good.
I will add it to the next release. Just working on other import options like ics and vcard…
The “Date” is now available as an optional field. You can add it in the list, compact and timeline view:
v2.5.0 is just released.
- “Annuals” is now part of HACS Default

- Import your annuals from an ICS calendar or vCard contacts

- redesign of “Annuals Settings” hub
- date field available in lovelace card
Well done and thank you that’s exactly what I needed.
I thought this would be a lot harder than it actually turned out to be.
So here’s v2.6.0 with two pretty useful new features:
- One-Time Events – so you can finally add a countdown for your next vacation (or any other one-off event).
- Calendar Integration – you can now display your existing calendar entities directly inside the Annuals custom Lovelace card.
That gives you the choice to either:
- integrate Annuals calendars into your existing calendar cards, or
- keep everything neatly organized in the Annuals card.
v2.6.1 brings a minor, but powerful option to the timeline view. Now, you can control, how many entries are shown max in the header. This is helpful, when you want to have a fixed default height of the card:
…and there is now a “Quick Start” guide in the Readme.
Annuals 2.7.0 is out 
New: automation blueprint for reminders
No more hand-rolled automations — Annuals - Upcoming Event Reminders is a ready-to-use blueprint that covers the “remind me ahead of time” case with zero YAML:
- Target specific events, or every event of a type (e.g. all birthdays)
- Filter by VIP / Important (AND/OR)
- Multiple lead times in one go, e.g.
7,1,0days before - Notify via Mobile App (with a “Done” button), the HA notification bell, TTS, or any custom action
- Optional to-do list tracking — each due reminder can become a to-do item. Check it off (from the list or the notification’s “Done” button) and that event is resolved for good: every other channel skips it too, so a later lead time or a manual re-run won’t nag you about it again.
New: actual vs. observed holiday dates
Many countries shift a statutory holiday that falls on a weekend to a nearby weekday (e.g. a Saturday US federal holiday, observed the preceding Friday). Holiday import now lets you bring in the actual date, the observed date, or both as separate events. The dashboard card got a matching “Holiday date” filter plus a “Prefer observed date” toggle that merges an actual/observed pair into one clean entry.
As always, feedback and issues are welcome ![]()
v2.7.1 brings a small, but helpfull feature.
Tap the countdown to see the actual date:

Do you like this integration so far? If so, I’d welcome your star at this repo ![]()




