How to build a Telegram reminder and todo bot
By the Botable team
A Telegram reminder bot turns a sentence into a scheduled message. You write "remind me to call the bank at 4pm", it parses the time, saves the task, and messages you then. Describe the phrasing you use and Botable builds it.
What is a reminder & todo bot?
A Telegram reminder bot is a scheduler with a natural-language front door. The hard part is not the alarm, it is the parsing: "tomorrow at 9", "in 20 minutes", and "every Monday" are three different storage shapes — a one-off timestamp, a relative offset, and a recurrence rule — and a bot that only handles the first will feel broken. Each task becomes a row with an owner, a due time, a repeat rule and a done flag, which is also what makes a list command possible. Timezone is the second trap: Telegram does not tell a bot where a user is, so the bot has to ask once and store it, or every reminder lands at the wrong hour. On Botable the task table and the scheduled checker are created as part of the build, and the bot keeps running between messages without a server to maintain.
What commands does it have?
| Command | What it does |
|---|---|
/remind | Creates a reminder from plain text and a time |
/list | Open tasks, soonest first |
/done 3 | Marks a task complete |
/snooze 10m | Pushes the last reminder back |
/repeat | Turns a task into a recurring one |
What do you need before you start?
- A Telegram bot token from @BotFather
- The phrasings you actually use for times, so parsing matches your habits
- One decision: does the bot ask for your timezone, or assume one?
How do you build it?
How should the bot understand times?
List the phrasings you use — "in 10 minutes", "tomorrow 9am", "every Friday" — when you describe the bot. Parsing is only as good as the examples it was built against, and it is faster to name them up front than to discover the gaps at 3am.
Why does the bot need a timezone?
Because Telegram does not provide one. Without it, "9am" means 9am on the server. Ask for a one-time setup question that stores the user's offset, and for the bot to confirm the resolved time when it creates a reminder.
How do recurring reminders differ from one-offs?
A one-off is deleted after it fires; a recurring task is rescheduled. Say which you want, and say whether a missed recurrence should be skipped or delivered late — the two behaviours suit different habits.
How do you avoid a growing list of stale tasks?
Ask for an explicit done command and a periodic prompt about anything overdue. A reminder bot that never closes anything becomes a list people stop opening, which defeats the point.
A prompt you can use as-is
Paste this into Botable and adjust the details. It is specific on purpose — a vague description produces a vague bot.
Build a reminder bot. /remind <text> <when> creates a reminder and confirms the exact resolved time back to me. Understand "in 20 minutes", "tomorrow at 9am", "Friday 18:00" and "every Monday at 9". Ask me for my timezone once and store it. /list shows open tasks soonest first with numbers, /done <number> completes one, /snooze <duration> pushes back the last reminder. Prompt me about anything more than a day overdue.
Who is this bot for?
- People who already live in Telegram and will not open a task app
- Small teams wanting shared nudges in a group chat
- Habit tracking, where the recurrence matters more than the task list
What goes wrong with this kind of bot?
- Timezone is the number one source of wrong-hour reminders — collect it explicitly
- Confirm the parsed time back to the user; silent misparsing is invisible until it fails
- Recurring reminders with no end date accumulate forever; allow cancellation from the list
Questions about reminder & todo bots
Can it remind a whole group?
Yes. Add the bot to the group and reminders created there fire into the group. Personal reminders stay in the private chat, so the two do not mix.
Can it attach a link or a file to a reminder?
Yes. Whatever you send with the task is stored and echoed back when it fires, which is useful for "read this later" reminders.