Install
openclaw skills install @devino/caly-managing-bookingsReviews and changes the user's Caly bookings: lists upcoming, past, cancelled or unconfirmed meetings, looks one up by attendee or time, reschedules it to a free slot, or cancels it through Caly's two-step confirmation. Use when the user asks 'what meetings do I have tomorrow', 'show my bookings with Sam', 'move my call with Alex to Friday', 'reschedule the 3pm', 'cancel my meeting with this client', or 'who cancelled this week'. Reads freely; reschedule and cancel notify attendees, so they are confirmed first.
openclaw skills install @devino/caly-managing-bookingsFind the right booking, then read, move or cancel it without surprising anyone.
Every tool in this skill comes from the caly MCP server, the Caly connector, and is written here as caly:<tool>.
caly:list_bookings.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_list_bookings); 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 CONFIRMATION_REQUIRED:.
caly:whoami: the account and its time zone.caly:list_bookings: the user's bookings, filtered by status (upcoming, past, cancelled, unconfirmed, recurring), attendeeEmail, attendeeName, eventTypeId, or a window (afterStart, beforeEnd). Paginated with take and skip; check pagination.hasNextPage.caly:get_booking: one booking by bookingUid, with attendees, hosts, location and any cancellation or rescheduling details.caly:find_available_slots: free start times; pass bookingUidToReschedule when moving a booking so its own slot counts as free.caly:reschedule_booking: moves a booking to a new start (UTC ISO 8601), with an optional reschedulingReason. Caly creates a new booking with a new uid and notifies the attendees.caly:cancel_booking: cancels a booking and notifies its attendees. It cannot be undone and takes two calls (see the workflow).caly:whoami for the time zone, then caly:list_bookings with the filters that match the question ("tomorrow" → status: ["upcoming"] plus a window; "with Sam" → attendeeName or attendeeEmail).pagination.hasNextPage with skip until the window is covered, or tell the user how many more there are.caly:get_booking only when the user wants one booking's details.uid. If several match, list them and ask which one.caly:find_available_slots for its event type and the new day, passing bookingUidToReschedule. Use only a start time from the result.caly:reschedule_booking once. Report the new time and the new uid.uid, and ask for a reason if the user has one.caly:cancel_booking with the bookingUid (and cancellationReason). The first call does not cancel: it returns CONFIRMATION_REQUIRED with a confirmToken.caly:cancel_booking again with the SAME arguments plus the confirmToken. Report that it is cancelled.confirmToken the user has not seen the booking for, and never reuse one for a different booking.cancelSubsequentBookings only when the user clearly asks to cancel the rest of a recurring series.