Skip to main content
Use this demo to connect your booking card without an external calendar provider. It offers one 30-minute meeting time and returns a Demo only confirmation. It creates no calendar event, sends no email, and reserves no real availability. Use a separate demo toolkit and agent. Replace both actions with your provider integration before offering real bookings.

Before you start

Before you start, sign in to the dashboard and select the organization you want to work in.

Create the two actions

1

Create a CodeKit toolkit named Demo scheduling

Use Create a CodeKit toolkit for the toolkit controls.
2

Add the Demo availability action

Choose Scheduling · Availability as its Action type.
3

Replace the Availability starter code

Paste this code into the CodeKit editor:
4

Add the Demo booking action

Choose Scheduling · Booking as its Action type.
5

Replace the Booking starter code

Paste this code into the CodeKit editor:
Keep the schemas supplied by the action types. These actions return the contract objects directly, without the successful, data, and error wrapper used by general actions. Times are UTC milliseconds and ranges have an exclusive end.

Read the sample inputs and outputs

These examples illustrate the contract values. The availability output assumes the current time is at or before the range start, 1800000000000. The action offers the first 30-minute appointment starting at least an hour from now, on a local half-hour boundary. The whole appointment fits between 9 AM and 5 PM in the end user’s timezone. Later calls offer a time based on the current clock, or return empty if no appointment fits the range. The scheduler supplies the real integration ID, version, range, chosen time, and attempt ID at runtime. The Input and Output types come from the CodeKit editor’s generated tars module. Paste the actions into that editor. These snippets are not a standalone local TypeScript project.
Input:
Expected output:
Input:
Expected output:
The CodeKit Test tab cannot run scheduling actions. Builder test conversations simulate scheduling, so they do not verify that your published action code executes.

Publish the integration

1

Deploy and enable both actions

Save and deploy Demo availability and Demo booking, then enable each action.
2

Open the Publish integration dialog

Open Integrations in the toolkit’s more-options menu and select Publish integration.
3

Publish the integration

Choose the Scheduling contract. Set Availability action to Demo availability and Booking action to Demo booking. Set Name to Demo scheduling and Integration ID to demo_scheduling, then select Publish.
4

Select the version in Meeting Scheduler

On a separate demo agent, add a Component gambit in Workflow Mode and pick Meeting Scheduler. Open Configure → Integration and select the published Demo scheduling version. Under Inputs, set prefillName to Demo Guest and prefillEmail to guest@example.com for this demo. Both are required for a CodeKit scheduler.Save the gambit and connect it into the flow.
For a real integration, replace Availability with a read from your provider and Booking with a verified provider write. Pass attemptId to the provider as an idempotency key so retrying cannot create duplicate meetings. Return confirmed only after verifying the booking, rejected when nothing was created, and unknown with the attempt ID when a write may have succeeded but cannot be verified. The Contract guide lists the complete schemas and other outcomes. After changing either action, deploy it and publish a new integration version. Existing schedulers keep their selected version until you select the new one. See Book meetings with the Meeting Scheduler.

Verify

The demo actions do not create calendar events or send emails. Use only the separate demo agent for this check.
1

Publish the demo agent

The published web chat runs the CodeKit actions instead of the builder’s simulated scheduler.
2

Open the demo agent's web chat and view available times

Viewing available times calls Demo availability.
3

Select and confirm an available time

This calls Demo booking. The confirmation reads Demo only: no calendar event.
4

Open the toolkit's Logs and inspect both calls

Both calls show Succeeded. Scheduling integration calls keep no payloads, so the input and output panels show [redacted]. Check each call by its status and the web chat confirmation.