Telegram To‑do List – Reply Keyboard + Inline Buttons
Update — Telegram To-do List (HA 2026.04)
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.