Caly: booking meetings
Create one confirmed booking in Caly, with the right event type, time, time zone and attendee.
Connecting and calling the tools
Every tool in this skill comes from the caly MCP server, the Caly connector, and is written here as caly:<tool>.
- Tools listed by name: call them directly, for example
caly:create_booking. - Only
caly:search_toolsandcaly:execute_typescriptlisted (Code Mode, the default): callcaly:search_toolsfirst, then call each tool insidecaly:execute_typescriptasexternal_<tool>(for exampleexternal_create_booking); the program mustreturnits result. - "Tool not found": switch to the Code Mode route instead of retrying the direct call.
- No
calytools at all: Caly is not connected yet. Add the server as shown in https://github.com/DevinoSolutions/mcp-servers/tree/main/caly#install; it signs in with OAuth on first use.
A refused call throws an Error whose message starts with its code, for example INVALID_INPUT:.
Tools you will use
caly:whoami: the account this connection acts as, with its time zone.caly:list_event_types: the user's event types with id, title and length.caly:get_event_type: one event type in full, includingbookingFields(the booking questions an attendee must answer).caly:find_available_slots: free start times for an event type between two dates.caly:create_booking: books the meeting (eventTypeId,startas UTC ISO 8601,attendeewithname,timeZoneand usuallyemail, optionalguests,lengthInMinutes,bookingFieldsResponses). Caly sends the confirmation emails and calendar invites.
Workflow
- Call
caly:whoamiandcaly:list_event_types. Pick the event type from the user's words; ask if it is ambiguous. - Collect the attendee: name, email, and their time zone. If the user does not know the attendee's time zone, ask; do not assume it is the user's.
- Call
caly:get_event_typeand readbookingFields. Ask the user for any required answer you do not have yet. - Call
caly:find_available_slotsfor the requested day. Use only a start time that appears in the result. If the requested time is not free, say so and offer the nearest free slots instead. - Show a summary and wait for an explicit yes: event type, date and time in both the user's and the attendee's time zone, length, attendee name and email, guests, and that Caly will email the invite.
- After the yes, call
caly:create_bookingonce with the slot'sstartin UTC and the collected details. - Report the result: the booking's title, time, status (some event types need the host to confirm, so it may be unconfirmed), meeting URL or location, and its
uid, which reschedules and cancellations need.
Rules
- Never call
caly:create_bookingwithout the user's explicit confirmation of the summary in step 5. - Never retry a failed
caly:create_bookingblindly; read the error, fix the input, and confirm again if anything changed. - Never invent an attendee email. Book only with details the user gave.
- To move or cancel an existing meeting, use the
managing-bookingsskill instead of creating a second booking.
