scheduling_embed renders your Calendly booking page inside the conversation. The user books a slot in the real widget, and the confirmed booking is reported to the PAL and delivered to your webhook as a canvas.interaction event.
See Enabling and configuring components for skill attachment and general component settings.
Configuration
Attaching the skill alone does not activatescheduling_embed. It stays inactive (no action is compiled, no error) until a valid scheduling_url is saved in the skill config.
Arguments
The PAL invokescanvas_show_scheduling_embed when the user should book a meeting and a scheduling link is configured. The booking link itself is never an argument.
scheduling_embed renders inline in a side rail (default safe-area-right); placement is handled client-side.
There is no
url, link, or scheduling_url argument. The link comes from
your PAL config, delivered directly to the sandboxed renderer, bypassing
the model entirely.Interactions
The built-in card emits exactly one interaction type:submit, sent when the user completes a booking. There is no close control, so closing the card without booking produces no interaction. Renderer failures surface as an in-card “Scheduling unavailable” panel, not as webhooks.
The interactions API also accepts
skip, dismiss, clear, error, and
heartbeat for this component, for custom clients that post their own
interactions; these are not shape-validated by Tavus.submit
The value object accepts only these keys:
Example webhook for a completed booking:
created_at is a naive ISO-8601 timestamp with microsecond precision and no timezone suffix.
The canvas.interaction webhook follows the interaction delivery guarantees. Fetch the full history at any time, except on Zero Data Retention conversations, which record no interactions:
When to Use
Usescheduling_embed when booking a meeting is a goal of the conversation. The user books in your real Calendly page, so availability, routing, and confirmation emails work as they do on your website. For a date or time preference without a real booking, use calendar instead.
