Warm Telegram confirmations from you for new Calendly bookings
When someone books time on Calendly, send them a short personal Telegram note from your own account, but only if they are already an active DM contact.
Build me an agent workflow that sends a warm, personal Telegram confirmation from my own Telegram account the moment someone books time with me on Calendly, but only if that person is already an active Telegram DM contact of mine. If they're not, do nothing. I never want to cold-DM strangers on Telegram.
Trigger: a Calendly webhook. On first run, subscribe to Calendly's invitee.created event using calendly Create Webhook Subscription so we get a live push the instant a booking lands. The workflow runs on every invitee.created payload.
When a booking fires, the agent should:
1. Read the invitee's name, email, and event details (start time, event type name, timezone, location or join URL) from the webhook payload. If any critical field is missing or the event looks like a reschedule/cancellation rather than a fresh booking, exit.
2. Optionally enrich the event with calendly Get Scheduled Event to pull the full scheduled event (final time, location, conferencing link) so the confirmation can quote the exact meeting details. Use this when the webhook payload alone doesn't include the location or join URL.
3. Call telegram-secretary Receive Updates to fetch recent updates from my linked Telegram account. Scan the recent business_message updates for a matching sender. Match on: (a) the invitee's full name against the sender's Telegram display name, and (b) any identifier the invitee may have shared with me in that DM recently, like their email address, company, or a phone number found in the message text. Only accept the match if the confidence is high, otherwise stop. Never guess.
4. Before sending, verify the match is inside the 24 hour reply window that Telegram's Business API enforces for as-user sends. The Receive Updates payload includes the last message's timestamp per chat, and the business_connection carries the rights the account owner granted. If the last inbound message is older than 24 hours, or if can_reply is not granted for that chat, skip silently and record why.
5. Draft a short, personal confirmation in first person, referring to the meeting by day and local time (for example: "great, locked in for Thursday 3pm ET, sending you the Zoom link in the invite, talk soon"). Keep it 1 to 3 sentences, no signature, no emoji unless the recent thread uses emoji, no formal salutation. Match the tone of my last few messages in that chat when possible.
6. Send the confirmation via telegram-secretary Send Message as User to the matched chat_id, using the business_connection_id from the same update stream.
If at any step the agent cannot confidently identify an active, in-window Telegram chat for the invitee, it must exit without sending anything and log the reason (no match / window closed / rights missing). This is the important safety property: silent no-op is the default, sending is the exception.
Integrations to use: calendly (Create Webhook Subscription, Get Scheduled Event) and telegram-secretary (Receive Updates, Send Message as User).
Additional information
What does this prompt do?
- Watches Calendly for new bookings and reads the invitee's name, email, and meeting time.
- Scans your recent Telegram DMs to find that person's chat, matching on name or on details they shared with you recently.
- Sends a short, warm confirmation from your own Telegram account, so it reads like you typed it, not a bot.
- Skips silently if there's no active Telegram thread, so you never DM strangers or people who haven't opted in.
What do I need to use this?
- A Calendly account (any paid plan that supports webhooks).
- A Telegram account with Business features turned on.
- A Telegram Secretary bot that you have connected to your account, with permission to reply in your DMs.
- The chats you want the assistant to see must be granted to the bot in Telegram's settings.
How can I customize it?
- Change the tone and template of the confirmation (playful, formal, ultra-short, add a Zoom line, add a prep question).
- Limit it to certain event types, like only demo calls or only paid coaching bookings.
- Loosen or tighten how the agent matches an invitee to a Telegram chat, for example by requiring a company name or a phone number to appear in the recent conversation.
Frequently asked questions
Will this ever DM someone who isn't already talking to me on Telegram?
How does the agent match a Calendly invitee to a Telegram chat?
Why does it only work for people who messaged me in the last 24 hours?
Can the confirmation include the meeting time and Zoom link?
What if I want to review the message before it sends?
Related templates
Confirm Calendly bookings on Telegram, in your own voice.
Connect Calendly and your Telegram Secretary bot once, and Geni sends a warm personal reply the moment someone you already DM books time with you.