Telegram To‑do List – Reply Keyboard + Inline Buttons
Check for Update !!
This automation blueprint lets you manage any Home Assistant to‑do list directly from a Telegram chat. It combines a friendly reply keyboard (bottom of the chat) with powerful inline buttons on the main list message.
This is the first attempt at creating a blueprint, so there may still be rough edges. If you run into any issues or unexpected behavior, please post in the thread and they will be addressed as soon as possible.
Inline keyboard with edit_message (clean chat, no spam)
Active / All list views
Automatic appearance of Clear completed button
Duplicate protection (case- and space-insensitive)
Reopen completed items with one tap
Add multiple items in a single message using , or .
Works with any Home Assistant todo.* entity
Blueprint-only solution (no hardcoded entity IDs)
Compatible with Home Assistant 2025.12+
How it works
Send /start or /list to the bot
Add items by sending plain text
Use inline buttons to complete or reopen items
Switch between Active and All views
Clear completed items when needed
Example:
milk, bread. eggs
Requirements
Home Assistant 2025.12 or newer
Telegram Bot integration
At least one To-do entity
Why this blueprint?
This blueprint focuses on usability and reliability:
No custom components
No Node-RED
No external scripts
Predictable behavior
Safe logic (no loops, no race conditions)
Just import the blueprint, select your To-do entity, Telegram chat_id (Use this bot to get ID, Config Entry ID (Settings → Devices & Services → Integrations →Telegram Bot → ⋮ Copy Config Entry ID
), and start using it.
Completed items in the “ Show all / History (all items)” view now use a ☑️ button with an action that restores them to active status instead of doing nothing.
When you tap a completed item’s button, the blueprint updates that to‑do entry from completed back to needs_action, so it reappears in the active list view.
The callback‑handling logic was extended to recognize a new /reopen_<uid> action and respond with a short confirmation message (“Active again”) when an item is reactivated.
Also added condition to check bot config entry ID(for more then 2 bots integrations)
The telegram_chat_id input now uses a text selector with multiple: true, allowing you to specify more than one chat ID.
The automation checks whether the incoming chat_id is in the configured list and only then proceeds.
All replies (send, edit, delete) now use trigger.event.data.chat_id, so the bot always responds in the same chat where the message, command, or callback originated.
2. Bot instance filtering
A global condition compares trigger.event.data.bot.config_entry_id with the blueprint input bot_config_entry_id.
This ensures the automation only reacts to events from the specific Telegram bot instance selected in the blueprint, which is essential when multiple Telegram bots are configured.
Telegram To-do List — Blueprint for Home Assistant
!! Update !!
A Telegram-native to-do list for Home Assistant — built entirely on inline buttons and the native todo domain (2025.12+). No web UI, no dashboard — just open Telegram and tap.
Features
Inline buttons — the message updates in-place (edit_message), no new messages flooding the chat
Active / All toggle — switch between active items and full list; “All” only appears when there are completed items
Dynamic Clear button — “ Clear” only shows when there’s something to clear
Duplicate protection — adding an existing active item shows a warning; re-adding a completed item reopens it
Multi-add — send milk, eggs, bread (comma or dot separated) to add multiple items at once
Quick done — tap “ Item” to mark complete, tap “ Item” to reopen
Sync scripts — trigger up to 3 custom HA scripts via inline buttons (e.g. sync with Google Tasks, Toodledo, etc.)
Reply keyboard — persistent bottom buttons for quick access: “ Show list”, “ Clear completed”, “ Scripts”
What you need
Requirement
Details
Home Assistant
2025.12+ (uses todo domain)
Telegram Bot
Via the official Telegram Bot integration
Todo entity
Any todo.* entity (Shopping list, custom, etc.)
Setup
Import the blueprint — copy the YAML into your blueprints or import from URL
Create an automation from the blueprint
Fill in the inputs:
To-do list — select your todo.* entity
telegram_chat_id — your Telegram chat ID (numeric)
Bot Config Entry ID — the config entry ID of your Telegram bot integration
Optional: assign up to 3 sync scripts and name their buttons
Save & enable — send /start to your bot in Telegram
How it works
Starting: Send /start to your bot. You’ll get a reply keyboard with three buttons at the bottom of the chat.
Adding items: Just type — milk, eggs, bread, butter — and the bot adds them to your list. The inline message updates automatically.
Completing items: Tap the “” button next to an item. It moves to completed. Tap “” to reopen.
Viewing all: When you have completed items, a “ All” button appears. Tap it to see the full list including completed items.
Clearing completed: Tap “ Clear” in the inline message, or “ Clear completed” in the reply keyboard.
Sync scripts: Tap “ Scripts” in the reply keyboard to see your script buttons. Each runs a configurable HA script and shows a “Done ” toast.
Configuration
Input
Required
Description
To-do list
Your todo.* entity
telegram_chat_id
Numeric chat ID
Bot Config Entry ID
Telegram bot config entry
Sync script 1–3
Optional script entities
Script button 1–3 name
Button labels (defaults: “Script 1/2/3”)
Notes
The blueprint uses mode: restart — if a new message arrives while the previous one is still processing, it restarts cleanly
Only one inline message is active at a time (the last one sent/edited)
Duplicate detection is case-insensitive and ignores spaces
The reply keyboard (resize_keyboard: true) stays pinned at the bottom of the chat
Works best with a dedicated bot for 1:1 use or in a private group