AI confirmation calls for tomorrow's appointments
Every weekday at 9am, an AI voice agent calls tomorrow's clients to confirm, reschedule, or cancel, then posts one Slack digest to your ops team.
Build me an agent workflow that places AI confirmation calls for tomorrow's appointments each morning and reports the results to my team.
Trigger: cron, every weekday at 9am in my local time zone.
Step 1. Use Google Calendar List Events to pull tomorrow's events from my target calendar. Filter to the 24 hour window that starts at the next local midnight and ends at the midnight after. Skip all-day events and anything flagged as internal (title or description contains an internal tag like [internal] or the event is on an internal-only calendar).
Step 2. For each remaining event, look for an attendee phone number. Check the event description, the location field, and any attached metadata or extended properties. Extract the first phone number you find and normalize it to E.164. If no phone number is found, skip the event and remember it for the digest under a 'skipped, no phone number' group.
Step 3. For each event with a phone number, dispatch a Bland AI Send Call with a friendly confirmation task. The script should greet the client by name if available, mention the appointment date and time, and offer three options: confirm, reschedule, or cancel. If they want to reschedule, ask for one or two preferred alternative windows. Keep it short and warm. Record the call.
Respect Bland's per-recipient cooldown: never dispatch two calls to the same phone number within 10 seconds. If two events share a number, space the dispatches out.
Step 4. After each call completes, run Bland AI Analyze Call with these structured questions: (1) Did the client confirm the appointment? yes/no, (2) Did the client request to reschedule? yes/no, (3) What alternative time did they prefer? free text. Also fetch Get Corrected Transcript so the record has a clean transcript.
Step 5. Post one consolidated Slack digest via Slack Bot Send a Message to my operations channel. Group outcomes into three sections: Confirmed, Reschedule requested (include the client's preferred windows and a link to the calendar event), and No answer or callback needed. Include a final section listing events skipped because they had no phone number or were flagged internal. Keep it one message, not one per call.
Inputs I want to configure when I set this up: the source Google Calendar id, the Slack channel id for the digest, the calling script text, the Bland AI voice or pathway id if I have a preferred one, the internal-tag pattern for events to skip, and the ops team lead to @mention for reschedules.
If Bland returns an error for a single call, log it and continue with the rest. If Google Calendar returns zero eligible events, still post a short 'no confirmations needed today' Slack message so the team knows the workflow ran.
Additional information
What does this prompt do?
- Reads tomorrow's calendar every weekday morning and picks out the appointments that have a client phone number attached.
- Places a friendly AI voice call to each client that offers to confirm, reschedule, or cancel the appointment.
- Understands the outcome of each call and captures whether the client confirmed, wants to reschedule, or did not answer.
- Sends a single grouped summary to your ops Slack channel so your team can act on reschedules without reading every transcript.
What do I need to use this?
- A Google Calendar account with the calendar you want to confirm appointments on.
- A Bland AI account for placing the outbound voice calls.
- A Slack workspace and the channel where you want the daily digest posted.
- Appointments where the client phone number lives in the event description, location, or attendee notes.
How can I customize it?
- Move the run time earlier or later, or add a second run in the afternoon to catch same-day changes.
- Rewrite the calling script to match your brand voice, adjust the language, or ask different questions.
- Choose which Slack channel gets the digest and how outcomes are grouped in the summary.
- Add rules for which events to skip, like internal meetings, all-day blocks, or specific attendee tags.
Frequently asked questions
How much does this cut no-shows?
What if an appointment has no phone number?
Will clients know they are talking to an AI?
Can I run this for a specific calendar instead of my primary one?
What happens if the same client is booked twice back to back?
Related templates
Stop chasing appointment confirmations by hand.
Connect Google Calendar, Bland AI, and Slack once, and Geni calls your clients every weekday morning and reports back in one clean digest.