Install
openclaw skills install @devino/caly-booking-meetingsBooks a meeting in Caly on one of the user's event types: finds a free slot, collects the attendee's details and the event type's required booking questions, confirms with the user, then creates the booking so Caly sends the invites. Use when the user asks 'book a call with Sam on Tuesday at 3', 'schedule a 30 minute intro with alex@example.com', 'put a meeting on my calendar with this client', or picks a slot found earlier. Writes data and emails the attendee, so it always confirms first.
openclaw skills install @devino/caly-booking-meetingsCreate one confirmed booking in Caly, with the right event type, time, time zone and attendee.
Every tool in this skill comes from the caly MCP server, the Caly connector, and is written here as caly:<tool>.
caly:create_booking.caly:search_tools and caly:execute_typescript listed (Code Mode, the default): call caly:search_tools first, then call each tool inside caly:execute_typescript as external_<tool> (for example external_create_booking); the program must return its result.caly tools 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:.
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, including bookingFields (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, start as UTC ISO 8601, attendee with name, timeZone and usually email, optional guests, lengthInMinutes, bookingFieldsResponses). Caly sends the confirmation emails and calendar invites.caly:whoami and caly:list_event_types. Pick the event type from the user's words; ask if it is ambiguous.caly:get_event_type and read bookingFields. Ask the user for any required answer you do not have yet.caly:find_available_slots for 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.caly:create_booking once with the slot's start in UTC and the collected details.uid, which reschedules and cancellations need.caly:create_booking without the user's explicit confirmation of the summary in step 5.caly:create_booking blindly; read the error, fix the input, and confirm again if anything changed.managing-bookings skill instead of creating a second booking.