How to build a Telegram event bot with RSVPs
By the Botable team
A Telegram event bot announces an event, collects RSVPs against a real capacity, runs a waitlist that promotes automatically when someone cancels, and reminds everyone before it starts. Describe your capacity, your reminder schedule and whether you need check-in, and Botable builds it.
What is a event bot?
A Telegram event bot manages the gap between how many people say they will come and how many arrive. RSVPs are cheap to give and easy to forget, so the parts that matter are capacity with a real waitlist, reminders timed to reduce no-shows, and a check-in on the day that tells you what actually happened. Capacity has to be enforced at the moment of the tap, in one write, or two people take the last place in the same second. The waitlist is what makes cancellations useful: when a place frees, the next person is promoted and told automatically, which recovers seats that would otherwise sit empty. Reminders a day ahead and an hour ahead measurably reduce no-shows, and each one should carry a one-tap cancel — someone who cannot come will often say so if saying so is trivial, which hands the seat to the waitlist in time to fill it.
What commands does it have?
| Command | What it does |
|---|---|
/events | Upcoming events and remaining places |
/rsvp <id> | Takes a place, or joins the waitlist |
/cancel <id> | Frees a place and promotes the waitlist |
/checkin <code> | Marks an attendee present on the day |
/attendees <id> | Organiser list with RSVP and check-in state |
What do you need before you start?
- A Telegram bot token from @BotFather
- Your events, their capacity, and whether a waitlist is wanted
- A reminder schedule, and whether check-in is needed
How do you build it?
How do you stop overbooking?
Claim the place in a single write at the moment of the tap rather than checking availability and then saving. The check-then-write pattern loses the race whenever two people RSVP within the same second, which is exactly what happens when an event is announced.
What makes a waitlist worth having?
Automatic promotion. When someone cancels, the next person on the list is moved up and told immediately, without an organiser noticing. A waitlist that requires manual promotion is a list nobody works through, and the seats stay empty.
Which reminders actually reduce no-shows?
One the day before and one about an hour ahead, each with a one-tap cancel. The cancel button is the important half: it converts a silent no-show into a freed seat while there is still time to fill it.
Is check-in worth building?
If you run events repeatedly, yes. The gap between RSVPs and check-ins is the number that lets you size the next one properly, and without recording it you are guessing at capacity forever.
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 an event bot. /events lists upcoming events with date, place and remaining capacity. /rsvp <id> claims a place in a single write so capacity cannot be exceeded, and puts the user on a waitlist when the event is full. /cancel <id> frees the place and automatically promotes and notifies the first person on the waitlist. Remind every attendee 24 hours and 1 hour before, each reminder carrying a one-tap cancel button. Issue each attendee a short check-in code; /checkin <code> marks them present. /attendees <id> gives the organiser the list with RSVP and check-in status and the no-show rate.
Who is this bot for?
- Meetup and community organisers running recurring events
- Workshops and classes with a real capacity limit
- Anyone whose RSVP list currently lives in a group chat thread
What goes wrong with this kind of bot?
- Check-then-write capacity overbooks the moment two people tap together
- A waitlist without automatic promotion leaves seats empty at a full event
- Reminders without a cancel button do not convert no-shows into freed places
Questions about event bots
Can it charge for tickets?
Yes, through Telegram Stars, taken in the chat. Decide whether payment claims the place or merely confirms an existing RSVP — the two produce very different waitlist behaviour when a payment fails.
Can it handle recurring events?
Yes. Store the series and generate each occurrence with its own capacity and attendee list, so a weekly class does not need re-creating each week and attendance history stays comparable across sessions.