Simple Timer Card - a clean way to track timers in Home Assistant

I’ve always struggled with showing Alexa timers on my dashboards. Nothing ever looked right, and the solutions I tried never really worked for me.

When I built the Hatch Card, I added a small timer mechanism. Mainly so the light would turn green when nap time was over, but also so I’d know roughly when I put my kid down for a nap (and not let him oversleep).

That gave me the idea: wouldn’t it be nice to have a card that shows all my timers, exactly the way I want them?

So I vibe-coded a new project: Simple Timer Card :tada:

Features

  • Display multiple timers in one card
  • Different layouts (list, circle, vertical)
  • Works with Voice PE timers, Alexa timers, washer/dryer cycles (works with my Samsung appliances), or any time-based entity
  • Simple, minimal design that fits right into Lovelace

Screenshot

Installation

Simple Timer Card is available in HACS (Home Assistant Community Store).

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Would love feedback, ideas, or just to hear how you’d use it!

12 Likes

Looks interesting, thanks for sharing!

Here’s where I am right now:

I have a timer running

image

This is the yaml config I get in the card when I try to use it with the existing timer

type: custom:simple-timer-card
entities:
  - mode: auto
    entity: timer.l_e_timer_fan
show_timer_presets: false

And this is the result in the dashboard
image

I must be missing something (simple), but I cannot find a way to make it work or an example to copy it form :frowning:

1 Like

Thanks for trying it out.
Can you share the state and attributes of this entity? I admit the auto mode isn’t great, so you’ll probably need to switch to a different mode.

Try:

type: custom:simple-timer-card
entities:
  - mode: timer
    entity: timer.l_e_timer_fan
show_timer_presets: false

I still need to test the timer mode a bit, so let me know if it works and whether the behavior matches your expectations.

This is what it looks like now:

:+1:

When I change any of the other attributes in the UI like color or icon, it changes to auto and I have to go back to the code editor to manually set it back to timer

I’ll play with it some more and let you have some more feedback ASAP, but what would be useful - at least for me - would be the option to driectly/manually trigger timer actions like from my above example:

Here are also all attributes from the Developer Tools - States tab:

duration: 0:15:00
editable: true
restore: true
icon: mdi:fan-clock
friendly_name: L&E Timer - Fan
finishes_at: 2025-09-09T01:17:05+00:00
remaining: 0:15:00

Found a few bugs that I fixed in the latest release (v1.3.0). I also added an option to keep native timers visible on the card when idle. Let me know if it works for you!

Looks great, thanks!

I like the the ‘Keep visible when idle’ option :+1:

1 Like

Im EXTREMELY interested in this…

@eyalgal, you accidentally solved a future nathan’s Friday problem - timers. Timelord? No the BBC probably would take issue… no - Timekeeper…

(Short version I see the backbone you’re cookin - I’ll use the same thing for my LLM tool.)

1 Like

Might be a stupid question but why can’t the state of the timer be stored using the HA timer entity? I was expecting that adding 30min for my timer would change the “duration” attribute in the entity. Am I understanding this card wrongly?

This functionality isn’t available right now. The card supports displaying Home Assistant timer entities and lets you start, pause, or cancel them, but not modify their duration. You can, however, create local or MQTT timers directly on the card with custom names and durations.

@eyalgal thanks, love the card. Just a couple of quick suggests/questions?

Can you change the icon when there are no timers, currently set to mdi:timer-off. I may have missed this but could not find it.

could you elaborate what the .text-input uses for the placeholder text for color? I tried --secondary-text-color and a few others but with no luck

Screenshot 2025-10-29 at 10.05.36

other wise I have it looking like I wanted. Inspiration for anyone:

1 Like

Thanks! Your setup looks great. Right now there’s no option to change the “no timers” icon, but you can adjust the secondary text color using card-mod. Just note it’ll also affect the timer action buttons and secondary info:

card_mod:
  style: |
    :host {
      --secondary-text-color: #2196f3; /* your color */
    }

Thank you. That worked. I will play around with it and make it work for me.

Would love the ability to change the icon. Could I add that as a feature request, if and when you get the chance. No worries if not it is still very useful card, Thank you.

I would love to do it myself but no that great at coding and don’t know how GitHub works.

Of course, I’ll look into it when I have a chance. Shouldn’t be hard to implement.

In the mean time, card-mod can change icons. The class nt-h is for the no timer header.

card_mod:
  style: |
    .nt-h {
      --card-mod-icon: mdi:clock;
    }

Very useful thank you!

@eyalgal may still be useful to change, so it can be edited from the UI for anyone in the future but @dcapslock card mod work around is working for me.

Thank you both.

2 Likes

Hi, great work.

I’m starting to use it and so far so good .
Smal lquestion though, is there a way to change notification to a different language ?

Thanks

The mobile notifications? They are based on an automation, so you can use the triggers from the example and customize the title and message as you like. Make sure to follow the guide here.

Thanks for this eyalgal, great solution for my kitchen dashboard to create timers while cooking.

I am having difficulty getting the audio file to play on my Google Nest Hub while casting the dashboard to it, audio plays fine while testing the dashboard within my browser using the config below though. Do you know if there is a way to configure this? Maybe using the play.media function?

type: custom:simple-timer-card
entities: []
layout: vertical
audio_enabled: true
audio_play_until_dismissed: true
audio_file_url: >-
  http://<ip.address>/media/local/clock-alarm-8761.mp3?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3YzQ3NDZiZjU5NWM0ZGRkODA5N2U3NmRlMTM5MTUzOSIsInBhdGgiOiIvbWVkaWEvbG9jYWwvY2xvY2stYWxhcm0tODc2MS5tcDMiLCJwYXJhbXMiOltdLCJpYXQiOjE3NjQyMzc2NjgsImV4cCI6MTc2NDMyNDA2OH0.TF1mLpoqj4tUeHURQ9FnF-3vlLFkzganWyRuu4t6aK4

Is there any way for the card to display a timer created by voice assist? I won’t be able to specify the entity ahead of time since it has not been created. To replace my kitchen Alexa I would really like to say “set a timer for (some minutes)” and have a card display the timer while I continue to cook. Thank you!

Hi @ckmiecik, you can follow my guide here to expose Voice PE timers. Hope it helps.