Caly
Devino Solutions v1.0.0
Book and manage meetings
Competitor profile
Developer declarations; not independently tested. Listing last checked Nov 4, 2026. Package observed Nov 3, 2026.
Declared capabilities
- Find free meeting times
- Book meetings
- Reschedule meetings
Cost & access
The Caly plugin does not sell products or process payments.
Declared limitations · 3
- Cancelling without confirmation. Cancellation cannot be undone and emails attendees, so Caly requires an explicit confirmation of each named booking; the plugin should not cancel on a blanket instruction.
- Booking outside the user's working hours. The slot is not available on the account's schedule, so the plugin should not create the booking.
- Acting on another user's calendar or sending arbitrary email. The connection reaches only the signed-in user's own event types, bookings and schedules, and Caly has no operation that sends free-form email.
Onboarding example
What meetings do I have booked over the next two weeks?
Description
From the marketplace listing
Caly is a scheduling tool: people book meetings with you on your event types, inside the working hours you set. The Caly plugin lets ChatGPT and Codex work with your own Caly calendar. What it can do: - Read your event types (the kinds of meeting people can book, with their length and booking link) and your working-hours schedules. - Find free start times for an event type over a date range, in the time zone you choose. - List your upcoming, past, cancelled or unconfirmed bookings, filtered by attendee, event type or time window, and open one booking's details. - Book a meeting for an attendee on one of your event types. Caly sends its usual confirmation email and calendar invite. - Move a booking to a new free time. Caly notifies the attendees. - Cancel a booking in two steps: the first request only returns a confirmation token, and the booking is cancelled only after you confirm which meeting it is. Caly notifies the attendees. Tools: seven read-only tools (whoami, list_event_types, get_event_type, list_schedules, find_available_slots, list_bookings, get_booking) and three that change bookings (create_booking, reschedule_booking, cancel_booking). Who it is for: anyone with a Caly account who wants to check their availability and manage their meetings from a conversation. How it connects: you sign in to Caly with OAuth and approve the connection on Caly's consent screen. The plugin acts only on your own event types, bookings and schedules, with your normal Caly permissions. Limitations: one approval covers every operation, with no per-operation permissions. The connection lasts at most 30 days before you sign in again. Booking, rescheduling and cancelling email the attendees, so the assistant confirms the details with you first. Creating a booking is not idempotent: repeating the request books a second meeting. The plugin does not send free-form email, read other people's calendars, or process payments.
Language: English · Automatically detected from descriptions.
Changes
No changes recorded yet. Follow this plugin to keep track of future changes.
First seen Nov 3, 2026. Last seen Nov 4, 2026.
Similar plugins
Find competitors to follow as you develop your plugin.
-
Connect Book with Schedulo to book a meeting with a host directly in ChatGPT — see their meeting types, find open times, and reserve a sl...
Shared terms: reschedules, slot, reschedule, cancel
-
Connect your New Coworker account and work with your customers from ChatGPT. Look someone up, read their texts and call summaries, and se...
Shared terms: slots, reschedule, times, finding
-
Teemeup MCP server: search golf courses, view course details and reviews, check course-day weather, read golf headlines, and find tee tim...
Shared terms: upcoming, past, bookings, finds
-
Calendesk is a booking and client-management platform for service businesses: clinics, therapy practices, consultants, trainers, tutors, ...
Shared terms: slot, slots, reschedule, cancel
-
Reclaim.ai brings intelligent time management directly into ChatGPT, helping you plan, protect, and optimize your schedule Instead of s...
Shared terms: tomorrow, reschedule, meet, cancel
Keywords
Files & skills
File archives
Skill instructions
booking-meetings3.27 KB
--- name: booking-meetings description: "Books 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." --- # 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>`. - Call each tool directly by name, for example `caly:create_booking`. - **No `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:`. ## 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, 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. ## Workflow 1. Call `caly:whoami` and `caly:list_event_types`. Pick the event type from the user's words; ask if it is ambiguous. 2. 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. 3. Call `caly:get_event_type` and read `bookingFields`. Ask the user for any required answer you do not have yet. 4. Call `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. 5. 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. 6. After the yes, call `caly:create_booking` once with the slot's `start` in UTC and the collected details. 7. 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_booking` without the user's explicit confirmation of the summary in step 5. - Never retry a failed `caly:create_booking` blindly; 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-bookings` skill instead of creating a second booking.
finding-meeting-times3.33 KB
---
name: finding-meeting-times
description: "Finds open times to meet in Caly: lists the user's event types, reads their working-hours schedules, and returns the free slots for an event type over a date range, in the right time zone. Use when the user asks 'when am I free', 'find a time for a 30 minute call next week', 'what slots do I have on Thursday', 'which meeting types do I have', 'what are my working hours', or wants options to offer someone before booking. Read-only."
---
# Caly: finding meeting times
Answer "when can this meeting happen" from the user's live Caly event types, schedules and availability.
## 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>`.
- Call each tool directly by name, for example `caly:find_available_slots`.
- **No `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:`.
## Tools you will use
- `caly:whoami`: the account this connection acts as, with its time zone, week start and default schedule. Takes no input.
- `caly:list_event_types`: the user's event types (the bookable meeting kinds) with id, slug, title, length and booking URL, hidden ones included.
- `caly:get_event_type`: one event type in full: lengths, locations, booking questions, buffers, minimum notice and schedule.
- `caly:list_schedules`: the user's availability schedules: working hours per weekday, date overrides, time zone, and which one is the default.
- `caly:find_available_slots`: the free start times for an event type between two dates (`eventTypeId`, `start`, `end`, optional `timeZone` and `duration`), grouped by date.
## Workflow
1. Call `caly:whoami` and `caly:list_event_types` together. Use the account's `timeZone` unless the user names another one, and say which time zone you are using.
2. Pick the event type. Match the user's words to a title or length ("30 minute call" → the 30-minute type). If two could fit, or none does, list the event types and ask which one.
3. Turn the user's range ("next week", "Thursday afternoon") into concrete `start` and `end` dates in that time zone. If no range is given, use the next 7 days.
4. Call `caly:find_available_slots` with the event type id, the range and the time zone. If the user wants a length the event type allows (`lengthInMinutesOptions`), pass it as `duration`.
5. Present a short list of options grouped by day, in the user's time zone, not every slot. If the user asked for a part of the day, filter to it.
6. If there are no slots, call `caly:list_schedules` and explain why (outside working hours, a date override, minimum notice from `caly:get_event_type`), then offer the nearest free day.
7. Offer next steps: book one of the slots with the `booking-meetings` skill, or share the event type's `bookingUrl` so the other person picks a time.
## Rules
- This skill only reads. Never call `caly:create_booking`, `caly:reschedule_booking` or `caly:cancel_booking` from it.
- Report only slots that `caly:find_available_slots` returned. Never infer free time from the schedule alone; bookings and buffers can block it.
- Always state the time zone next to every time you show.
managing-bookings3.99 KB
---
name: managing-bookings
description: "Reviews 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."
---
# Caly: managing bookings
Find the right booking, then read, move or cancel it without surprising anyone.
## 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>`.
- Call each tool directly by name, for example `caly:list_bookings`.
- **No `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:`.
## Tools you will use
- `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).
## Workflow
### Reviewing bookings
1. Call `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`).
2. Follow `pagination.hasNextPage` with `skip` until the window is covered, or tell the user how many more there are.
3. List each booking with its time in the user's time zone, title, attendees and status. Call `caly:get_booking` only when the user wants one booking's details.
### Rescheduling
1. Identify exactly one booking and its `uid`. If several match, list them and ask which one.
2. Call `caly:find_available_slots` for its event type and the new day, passing `bookingUidToReschedule`. Use only a start time from the result.
3. Confirm with the user: the booking, the old time, the new time (in the user's and the attendee's time zone), and that Caly will notify the attendees. Wait for an explicit yes.
4. Call `caly:reschedule_booking` once. Report the new time and the new `uid`.
### Cancelling
1. Identify exactly one booking and its `uid`, and ask for a reason if the user has one.
2. Call `caly:cancel_booking` with the `bookingUid` (and `cancellationReason`). The first call does not cancel: it returns `CONFIRMATION_REQUIRED` with a `confirmToken`.
3. Show the user which booking will be cancelled (title, time, attendees) and that the attendees will be emailed. Wait for an explicit yes.
4. Call `caly:cancel_booking` again with the SAME arguments plus the `confirmToken`. Report that it is cancelled.
## Rules
- Never reschedule or cancel without the user's explicit yes to a summary that names the booking.
- Never pass a `confirmToken` the user has not seen the booking for, and never reuse one for a different booking.
- Set `cancelSubsequentBookings` only when the user clearly asks to cancel the rest of a recurring series.
- Always state the time zone next to every time you show.
Release notes
Initial release: find free times, book, reschedule and cancel Caly meetings from ChatGPT.
Declared in the saved package. Remote tools may change independently.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package license
- MIT
- Package author
- Devino Solutions
- Keywords
- See keywords
- Declared availability
- No country restrictions declaredDeclared regions; live availability may differ.
- Commerce declaration
- Does not support commerceThis does not establish whether access is free or paid.
- Review scenarios
- 5 positive · 3 negativeScenario counts, not test results.
Declared capabilities
- Find free meeting times
- Book meetings
- Reschedule meetings
- Cancel meetings
- Read bookings, event types and schedules
Package observed Nov 3, 2026.
Technical details
- First seen
- Nov 3, 2026 · 18:00 UTC
- Last seen
- Nov 4, 2026 · 00:00 UTC
- Collection status
- Collected
plugin_asdk_app_6ac51dd686408191b5572a128034114e
Download plugin data (JSON)