A Telegram countdown bot that posts one message and counts it down
A countdown posted as a message is wrong the next morning. A countdown reposted daily is spam. Groups usually solve this by giving up and letting someone announce the number when they remember.
CountdownDaysBot takes the third option: it posts one message and then edits that message. The number in the chat is current, the chat is not filling up, and nobody gets a notification for a day passing.
Edit in place, not repost
The bot keeps the message id of the card it posted and rewrites that message whenever the displayed days-remaining number actually changes. It checks hourly, but an edit only happens when the visible number is different, so a countdown running for three months produces roughly ninety edits and zero new messages.
Because it is a single stable message, it is worth pinning. A pinned countdown stays correct indefinitely, which a pinned ordinary message does not.
Days remaining are computed against a group-level offset, set with /ctz. This is per group rather than per person, because a countdown is a single shared number and cannot be nine different numbers for nine members.
Several countdowns can run side by side, each its own message with its own id. /countdowns lists them with their target dates if the cards have scrolled out of view.
?start=zovo so arrivals from this page are counted separately.Starting a countdown
- Add the bot to the group. No admin rights needed; it only edits messages it posted itself.
- Set the group offset. /ctz +2. One setting for the chat, used to decide when a day rolls over.
- Start it. /countdown 2026-12-25 Christmas. The card appears immediately with the current number.
- Pin it. Optional, but this is the case where pinning genuinely pays, because the pinned message stays accurate.
- Stop it when it is done. /stop <id>. The creator or any group admin can do this; the row is marked stopped rather than deleted so ids stay stable.
Command reference
| Command | What it does |
|---|---|
| /countdown 2026-12-25 Christmas | Start a countdown. Posts one card that edits itself. |
| /countdowns | List the group's active countdowns with target dates. |
| /stop 3 | Stop a countdown by id. Creator or group admin. |
| /ctz +2 | Set the group's UTC offset, used to decide when a day rolls over. |
Free and Pro
Free
- 2 active countdowns per group
- Automatic in-place updates as the day count changes
Pro
- Unlimited active countdowns per group
- A custom emoji on the countdown message
- Hourly-precision updates during the final two days
One-time 150 Stars, scoped to the group. Any member can pay it and every member of that chat gets the higher limits.
What it stores
- Per countdown: target date, label, the id of the member who created it, and the id of the message being edited.
- Stopped countdowns are marked rather than removed, which keeps the group's id numbering consistent over time.
- Nothing else in the chat is read or stored. The bot only ever touches the specific messages it posted.
Questions
- How often does the number update?
- The check runs hourly and an edit only happens when the displayed day count changes. There is no fixed clock time at which it refreshes.
- Does every update send a notification?
- No. Editing a message does not notify the chat, which is the reason the bot edits rather than reposts.
- What happens on the last day?
- On the free tier the card reads zero days. Pro countdowns switch to hourly precision for the final two days, so the message counts hours instead.
- Who can stop one?
- The member who created it, or any group admin, with /stop and the countdown's id.
- Can I count down to a time, not a date?
- The target is a date. Hour-level precision appears in the last two days on Pro; otherwise the unit is days.
Other Telegram bots in this set
All of them are listed alongside the rest of Zovo's free online tools, and the browser-side half of the catalogue is under Chrome extensions.
Want the step-by-step walkthrough? Read Group countdown setup: the full guide on tg.zovo.one.