#best way to send available slots for bking for the agent to handle?

1 messages · Page 1 of 1 (latest)

twin prawnBOT
#
AI-generated Answer for carolyn_41665

Short answer: expose availability through a webhook tool the agent can call, then let the agent confirm and book via a second tool.

What ElevenLabs documents as the best-practice flow

  • Create two tools on your agent:
  • Store your scheduling provider API key as a secret (use Authorization: Bearer … for Cal.com). (elevenlabs.io)
  • Optional: if you use Zapier MCP or another orchestration layer, configure the same pattern—agent calls get_available_slots, suggests alternatives if unavailable, confirms details, then calls book_meeting. (elevenlabs.io)
  • Calendly is also supported as an integration for real-time availability checks and bookings if that’s your provider. (elevenlabs.io)
  • You can pass context like timezone, attendee name, or email into tool parameters via Dynamic Variables (runtime values injected into tools). (elevenlabs.io)
  • Tools are the documented mechanism for connecting agents to external APIs (webhook/server tools). (elevenlabs.io)

If you already have precomputed slots on your backend, expose them via your own GET webhook tool (same get_available_slots pattern), return JSON, and let the agent present/confirm before invoking book_meeting. (elevenlabs.io)

Which scheduler are you using (Cal.com, Calendly, or custom)?

Sources:
Cal.com | ElevenLabs Documentation
Cal.com | ElevenLabs Documentation
Cal.com | ElevenLabs Documentation
Connect Zapier to ElevenLabs Conversational AI Voice Agents
Connect Calendly to ElevenLabs Conversational AI Voice Agents
Dynamic variables | ElevenLabs Documentation
Tools | ElevenLabs Documentation
Server tools | ElevenLabs Documentation

golden reef
#

and within the System prompt? example of booking appointment?

twin prawnBOT
#
AI-generated Answer for carolyn_41665

Yes. You can encode the booking logic directly in the agent’s System prompt. Here’s a concise, docs-aligned example you can paste and adapt (tool names must match your Tools config):

System prompt (appointment booking via Cal.com)

  • Role: You are a friendly, efficient scheduling assistant for [Company]. Your goal is to book, reschedule, or cancel meetings.
  • Tooling you can use:
    • get_available_slots: check live availability.
    • book_meeting: create the booking once details are confirmed.
  • Procedure:
    1. Collect requirements: meeting purpose, preferred date/time window, duration, and timezone (confirm or ask if unclear).
    2. Check availability: call get_available_slots with the user’s constraints. If the requested time is unavailable, propose 2–3 alternatives in the caller’s timezone. Do not guess availability.
    3. Confirm details: chosen slot, full name, and email. Read back the details and ask for a yes/no confirmation.
    4. Book: call book_meeting with the confirmed details. On success, tell the user they’ll receive a calendar invite; on failure, apologize, retry once, then offer a follow-up or human handoff.
  • Guardrails:
    • Never expose secrets or internal IDs; only state times returned by the tools.
    • If current date/time is needed, use a time tool or supplied runtime variables instead of assuming.
    • Be concise and stay on-topic; ask clarifying questions when information is missing.

This structure mirrors ElevenLabs’ guidance: define tool-use sequencing inside the System prompt, gather details, check availability with get_available_slots, then confirm and book with book_meeting, and confirm that an invite will be sent. You can also pass runtime data (e.g., timezone) via Dynamic Variables or Overrides if needed. (elevenlabs.io)

References

  • Quickstart: where to set First message and System prompt. (elevenlabs.io)
  • Server tools: include orchestration instructions in the System prompt; example of structuring tool use. (elevenlabs.io)
  • Cal.com integration: steps to collect details, check get_available_slots, and call book_meeting; confirm invite. (elevenlabs.io)
  • Dynamic Variables and Overrides: inject timezone/current time or customize the prompt at runtime. (elevenlabs.io)

Sources:
Server tools | ElevenLabs Documentation
Quickstart | ElevenLabs Documentation
Server tools | ElevenLabs Documentation
Cal.com | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation

golden reef
#

best format to define available_slots here: Amazing. We’re really busy in your area right now. Let me check our availability. I have the following slots available: {{available_slots}}. Would any of these times work for you: [Suggest only one slot from {{available_slots}}]?