Skip to main content
Glama
685,711 tools. Updated 2026-10-22 22:06

"Cal.com" matching MCP tools:

  • Load a tool catalog: returns its intro text, usage patterns, and each tool's full JSON input schema as markdown. On surfaces that scope active tools by context this also activates the catalog's tools (elsewhere they are already callable and this just adds the enriched context — workflows, field semantics, constraints — beyond the bare schema). Prefer loading the relevant catalog before using a capability over guessing a tool name or argument shape. For domain knowledge (themes, settings, logic semantics) use `load_skill` instead. Available catalogs: - form-data: Aggregate form analytics (views, completions, drop-off). Individual submission rows: formSubmission_list. - form-appearance: Visual styling: per-mode themes (light + dark). Cover/logo via form_update. - form-behavior: Behavior settings: notification emails, completion redirect, password, retention, language, payment, webhook. - form-sharing: Share-link CRUD + custom-domain attach/detach. Required after form_publish for respondent URL. - form-translations: Multilingual draft → publish workflow for form copy. - form-lifecycle: Form lifecycle ops beyond publish: unpublish, restore-from-trash. - workspace-management: Workspace inspect + folder CRUD beyond core list verbs. - request-lifecycle: Requests: discover field keys, create (with an existing form or one built in the call), read, list, cancel, remind, replay the callback, upload a document, check Stripe and Cal.com connections. - editor-actions: Editor actions beyond getDocument/updateElement/deleteElement: format text, set logic, simulate logic. - editor-inserts: Less-common element inserts beyond the core set: time/switch/file/signature/matrix/ranking/payment/schedule-appointment/picture-choice questions, embedded/table/list content, row/repeating-group layout, calculated/hidden fields, logic + variable.
    ConnectorOAuth
  • Book the signed-in person a free 30-minute intro call with Ben, at a time from my_bookings (introCall.openTimes; pass its start exactly as listed, and name the time by its label, never by a weekday you work out). Book it here: do not send the person to a booking page unless this refuses or fails. No diamond, nothing charged; the calendar invite comes from cal.com. The answer's booking has its own label and join link; move it with move_booking, cancel it with cancel_booking. One upcoming free call per person at a time: while one stands, this refuses and names it. Offer the free 30-minute intro call with Ben when the person is interested in the Pirate Forge (the Forge Pass) or in working with Ben one to one – Captain on Deck, which people also call an in-house workshop, consulting or freelance work. Never offer it for the Pirate Pass or for an event ticket.
    ConnectorNo auth
  • Set one account's booking follow-through settings — the same ones as the dashboard's account page. Writes our database only; fields you omit keep their values, numbers are clamped to their bounds (the reply lists `clamped`), and the reply returns the account's full `booking` block. Current values are in li_list_accounts. Name the account when you hold several; it is never guessed. - `bookingUrls`: the booking links this account sends (cal.com / Calendly …). ANY outgoing message containing one — a sequence step, li_send_reply, or a message typed by hand in LinkedIn that the inbox sweep stores — marks the booking link as sent. Matched ignoring case, scheme, www and a trailing slash; a deeper path of a listed link counts too. - `firstNudgeHours`, `closeAfterDays`, `maxNudges`, `cancelRecheckHours`: when li_booking_due lists someone and whether its next action is a nudge or a close. - `prefillName` (default true): every outgoing message gets the recipient's cleaned name added to the booking link as a query parameter (cal.com `name`; Calendly `name` + `first_name` + `last_name`), so the booking comes back under the name li_match_contacts expects. The link stays the real link — no redirect, no shortener; links that are not this account's booking links are never touched; a link already carrying the name is left alone. Write the plain link in a message; PoliteReach adds the name. - `bookingTool` (default auto) and `nameParam` (default none): only for a self-hosted or unknown booking page, which is left unchanged unless `nameParam` is set. The defaults work for cal.com and Calendly.
    Connector
    Destructive
    OAuth
  • Book a free 30-minute intro call with Matt Turley (Continuum) directly on his calendar. The booking is confirmed immediately and Cal.com emails the invite to the user and to Matt. First call get_availability and pass the exact start of an open slot. Only book when the user has asked for the call and agreed to the time; pass their real name, email and time zone. notes: a short, factual summary of what the user wants to discuss (shown to Matt). Returns the booking id, meeting link and reschedule/cancel links. Limit 2 upcoming calls per email.
    ConnectorNo auth
  • List the Stripe and Cal.com accounts the workspace has connected. Read before request_create with a payment or booking block. Returns { connectUrl, items: [{ provider, id, name, status, ready, default? }] }. Missing or not ready: tell your user to open connectUrl once.
    ConnectorOAuth
  • Book one appointment for a customer. This creates a real booking: the business is notified, and if it has connected Cal.com the booking is created there too. With the demo key it's a dry run that books nothing. Not idempotent: booking the same time twice fails the second time. Only call it after the customer has confirmed the time and service; needs a 'start' from list_open_times and the customer's email or phone. Errors: 404 the time is no longer offered (call list_open_times again), 409 it was just taken, 400 missing start, service, or both email and phone, or the business's connected calendar needs a detail the customer didn't give (the message says which, e.g. an email). Returns JSON { booked, id, start, label }; keep 'id' if the customer may want to cancel.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Find real businesses and book appointments. Books via Cal.com; imports 12 platforms.

  • Website designs as DESIGN.md: real Siteprint exports of Linear, Stripe, Ramp and Cal.com.

  • Book a call with Jan Linketscher on behalf of your user. The start must be a slot returned by get_availability. If your client supports elicitation (form mode, MCP 2026-07-28), the server itself asks the user to confirm time, name and email – name and email are then prefilled from your arguments and can be corrected by the user. Otherwise: show the user meeting type, date and time (with time zone), name and email, get their explicit approval, then pass name, email and confirmed: true. Use the user's real name and email; never invent them. Cal.com sends the confirmation with a calendar invite and links to reschedule or cancel to that email address.
    ConnectorNo auth
  • Turns YOUR repo classification (you scan the repo and pass what you found) into a complete, approvable deploy plan WITHOUT creating anything. ⚡ REDU NEEDS THREE FILES IF THEY EXIST - redu.md, the compose file, the Dockerfile - and there are two ways to give them. ⭐ BEST, for an upload-mode deploy: run prepare_upload FIRST and pass its `source_token`; redu reads all three straight out of the upload you already made, the upload stays deployable, and you emit nothing. Pasting the same files costs you 20-29 KB of output for bytes the server already has. Otherwise (git mode) paste `redu_md` (cat redu.md), `compose_yaml`, `dockerfile`. Either way you do NOT read or interpret them; redu parses them SERVER-SIDE and returns (a) a short digest, (b) `pin_dname` so a redeploy keeps the SAME public URL, and (c) `preflight` - preemptive fixes for known failure patterns found in YOUR repo, each learned from a real failed build. Giving redu these files is the single highest-value thing you can do for a first deploy. picks the VM + managed-Postgres sizes, prices them at the real pricing_rules rates, and checks they FIT your quota - so a plan that can't provision is caught HERE, before any spend. You pass what you detected in the repo (runtime, port, needs_postgres/redis/clickhouse/vector_db); it returns resources + £/hr + £/mo + a feasibility verdict + a checkpoint summary to confirm with the user. Defaults: app VM m1.medium, managed Postgres m1.small, managed ClickHouse m1.medium; pass single_vm to collapse the app + Postgres onto one VM. SET needs_clickhouse:true FOR ANY ANALYTICS-SHAPED APP (Plausible, PostHog, Langfuse, Matomo, SigNoz, or anything with a clickhouse image / CLICKHOUSE_* env / a ClickHouse client dep): those products keep config in Postgres and EVERY EVENT in ClickHouse, so the events tier is a second VM with a second line on the bill: measured 2026-08-07, omitting it quoted GBP 53.29/mo for a GBP 65.99/mo deployment. It is sized, quota-checked and priced here; unlike Postgres and Redis it is not auto-wired by deploy_app, so the plan tells you to run plan_managed_datastore engine:'clickhouse' -> create_clickhouse and pass CLICKHOUSE_* env yourself. A Qdrant vector DB is managed like the other datastores (vector_engines in send_signals; qdrant:'managed' without a signal); pgvector lives in the managed Postgres. In a session with send_signals the platform sizes every machine by measurement, so heavy_build, memory_heavy and needs_compose change no size there. Any containerizable app works (node, python, go, ...) - it deploys as a container, so the language doesn't gate it. Set serves_http:false for a non-web repo (a library, CLI, or language runtime with no HTTP server) and it returns a clean not-a-web-service verdict instead of a costed VM plan. Set heavy_build:true for resource-heavy builds (compiled-from-source native code, a monorepo/turborepo build, a large Node heap) and it raises the app VM to a build-capable floor so the on-VM build doesn't get OOM-killed. Set memory_heavy:true for a RAM-forward app whose persistent state lives in a MANAGED DB / external store (Next.js like cal.com/cal.diy, Rails, Django, JVM/Java apps) - it sizes onto a memory-optimized SMALL-DISK flavor (m1.mem16/m1.mem32: full RAM, a lean 40 GB disk instead of 160 GB) that costs less and snapshots/clusters far faster; do NOT set it if the app keeps lots of data on local disk. Also returns a brand-named markdown report (Mermaid diagram + cost) to SHOW the user only in guided mode; write no file from it. Every deploy leaves TWO MANDATORY files at the repo root with DIFFERENT purposes, both written ONCE at the end from the deployment that actually ran (get_deployment), after you verified it works: redu-deploy-plan.md = what this run deployed, and redu.md = the DURABLE deploy memory the NEXT deploy reads. If a redu.md exists, READ it FIRST and reuse its known-good plan + recorded fixes; if NONE exists, one MUST be created at the end of the deploy (get_deployment returns redu_md_bootstrap_markdown for exactly that case; when a redu.md DOES exist, pass it as redu_md and write the merged redu_md_markdown). They are SEPARATE files - even if your own memory/notes from a prior deploy call redu-deploy-plan.md 'the record', the durable record is redu.md, so do not skip creating it. ROUTE: from a source_token (pass port too: it tells the platform which compose service is the app) the plan can also carry recommended_route:'compose', the platform's route for that folder, with every recommended_* and route_* field it sent (recommended_compose_file, recommended_service, recommended_port, recommended_image, route_reason, route_next): then deploy that compose file with deploy_compose (compose_file), with recommended_service as service and recommended_port as port (the HOST port the app service publishes, not the port the app listens on inside its container), not deploy_app, unless route_next's conditions for building the Dockerfile with deploy_app hold.
    ConnectorNo auth
  • Full professional profile of Laurent Knauss: title, location, availability, contact email, social profiles (GitHub, LinkedIn, X), certifications, and Cal.com booking link. Use this first to understand who he is and how to reach him.
    ConnectorNo auth
  • Get the booking link to schedule a free 30-minute call with Laurent Knauss (Cal.com). The agent should present this link to the user so they can pick a slot. Optional topic hint is allowed but the actual slot selection happens on Cal.com.
    ConnectorNo auth
  • List the business's next open appointment times: up to 5, soonest first, within the next 7 days, labelled in the business's time zone, plus its services and locations. Read-only. Call it before book_appointment and whenever a customer asks when they can come in. Times come from the business's CallChatSyn hours or from its connected Cal.com calendar. Returns JSON { slots: [{ start, label }], services, locations }; pass a slot's 'start' to book_appointment unchanged. An empty slots list means nothing is open this week.
    ConnectorNo auth
  • Cancel one of the business's bookings by the 'id' that book_appointment returned. This changes data: the time becomes free again, and if the business has connected Cal.com the booking is cancelled there too (Cal.com emails the customer). Only call it after the customer has clearly asked to cancel that specific booking. To reschedule, cancel and then book a new time from list_open_times. With the demo key it's a dry run. Errors: 404 no such booking for this business, 409 already cancelled, 400 not a booking id. Returns JSON { cancelled, id, start }.
    Connector
    Destructive
    No auth
  • Create a Pool Pro Florida service lead in Pool Founder when a customer is interested in service but is not yet booking an appointment. Do not call this before book_appointment for the same inquiry because a successful Cal.com booking creates the Pool Founder lead through the booking webhook.
    ConnectorNo auth
  • Insert a Schedule appointment question backed by Cal.com. Use for bookings or appointments; do not substitute separate date and time questions. The creator connects Cal.com and selects an event type afterward.
    ConnectorOAuth
  • Check availability, book, or cancel via Cal.com. Only completes when the SMB's imported booking link is bound to this deployment's ONE connected Cal.com account; otherwise fails honestly (booking_destination_unmapped) with no charge. No working booking path exists yet for non-Cal.com platforms (voice AI, web form) — those SMBs fail honestly instead of a fabricated confirmation. [from $0.15/call, variable] [async→get_outcome]
    Connector
    Destructive
    No auth
  • Turn a public booking URL into a callable smb_id for send_message and capture_lead. But schedule_appointment only completes on Cal.com bound to our one connected account — the other 11 always fail schedule_appointment honestly, uncharged. Detects 12 platforms (Cal.com, Calendly, Doctolib, Booksy, Fresha, OpenTable, Setmore, Square, Acuity, Schedulista, Squarespace, BookMyCity). Idempotent — calling twice returns the same smb_id. [free, requires key]
    ConnectorNo auth
  • List open slots for a free 30-minute intro call with Matt Turley (Continuum), read live from his Cal.com calendar. Use it when the user wants to talk to Matt, get help with a project, or book a call, before calling book_call. Window: date_from to date_to (YYYY-MM-DD), at most 14 days; defaults to the next 7 days. Times are returned in the requested timezone (IANA name, default UTC). Read-only: it books nothing.
    ConnectorNo auth
  • Match booking attendees you read from the user's calendar (Google Calendar, Calendly, Cal.com, or booking-confirmation emails) to prospects — deterministic, read-only, no LLM. Pass what the event shows: `name`, `email` if any, the calendar's `eventId`, `startsAt`, and ALSO `createdAt` (when the event was created/booked) and the raw `description` whenever the event has them — the timing and time-zone signals are read from those two. The pool: people with a booking in play (link sent, agreed, cancelled), everyone in an active campaign, anyone messaged in the last 60 days, and anyone our booking link went to in the last 30 days — only on accounts you can see. Names are normalised (case, accents, punctuation, titles like Dr/PhD, middle names and initials, "Last, First", a small nickname table: Bob=Robert, Bill=William…); a prospect's name is cleaned the same way as the name prefilled into the booking link. Rules, in order: (1) exact full name among people sent the booking link in the last 30 days → match (`full_name_recent_link`); two such namesakes → the one who booked within 15 minutes of their own LinkedIn message, else ambiguous. (2) email's company domain equals the prospect's `companyDomain` AND first or last name matches → strong; full name matches exactly → strong; first and last each within one typo → WEAK; exactly one strong → match. Personal email domains (gmail, outlook, hotmail, yahoo, icloud, proton…) never count as a company domain. (3) Scoring (`score`): first_name +2 (or first_name_typo +1), last_name_in_email +3 (prospect's surname in the email's local part), recent_link +2, booked_after_message +3 (event created 0–15 min after their inbound LinkedIn message), timezone_fits +1 (a zone in the description fits theirs). A conflicting surname excludes a prospect. Match only with a first-name signal, a surname (on the booking or in the email), score ≥ 7 and a lead ≥ 3. Per candidate: `match` (safe to li_mark_booked), `ambiguous` (NEVER mark it — list the candidates in `others`, best first, for a human to pick), `none`, or `ignored` (marked not from LinkedIn with li_ignore_calendar_event — skip it, never mark it). Each carries the rule, the chosen prospect's `signals`/`score`, a one-sentence `reason`, and the other candidates.
    ConnectorOAuth
  • Book a confirmed Pool Pro Florida appointment through Cal.com after the customer has selected an available time. Requires customer name, email, service address, and the exact start value returned by get_available_times. A successful booking triggers the existing Cal.com webhook, which creates the lead in Pool Founder.
    ConnectorNo auth
  • Create a real Cal.com booking for Raze. Only call this after the visitor selected an available slot and explicitly confirmed the booking.
    ConnectorNo auth
  • Check availability, book, or cancel via Cal.com. Only completes when the SMB's imported booking link is bound to this deployment's ONE connected Cal.com account; otherwise fails honestly (booking_destination_unmapped) with no charge. No working booking path exists yet for non-Cal.com platforms (voice AI, web form) — those SMBs fail honestly instead of a fabricated confirmation. [from $0.15/call, variable, not charged while no payment rail is on] [async→get_outcome] [limited]
    Connector
    Destructive
    No auth