Appointy MCP server Let your AI agent handle Appointy bookings.

Your AI agent books appointments from emails and messages, approves pending requests, moves a day when staff are out and tells you who is on tomorrow. Sign in to Appointy once in your own Cloud Browser. No Enterprise plan needed.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Appointy
Appointy logo Appointy Cloud Browser

9 tools Read and write

Request to booking

What can your AI agent do in Appointy? The scheduling work between the request and the appointment.

  • Book appointments from emails and messages

  • Approve pending booking requests

  • Reschedule when staff are out

  • Find free slots for a service

  • See tomorrow's schedule per staff member

  • Look up a customer's bookings

API on Enterprise

Does Appointy have an MCP server or an API? An API on Enterprise only, and no MCP server.

Appointy has no MCP server and no ChatGPT or Claude app. Its private API is listed only on the top Enterprise plan, and its Zapier app has a single action, create customer (checked 8 Nov 2026). Cotlet runs 9 Appointy tools hosted, over MCP for agents and REST for scripts, in your own Appointy login on any plan.

  • Zapier triggers on new, updated and cancelled appointments and new customers.
  • The only Zapier action creates a customer; nothing books, moves or approves.
  • Appointy has no connector in the ChatGPT apps directory or in Claude.
The Appointy API, other options and Cotlet compared
What you need Appointy APIZapier appCotlet
Read appointments Enterprise only Triggers on changes Yes
Book or move an appointment Enterprise only No Yes, after your OK
Approve pending requests Enterprise only No Yes, after your OK
Add a customer Enterprise only Yes Yes
Appointy plan needed Enterprise Any Any

Checked 8 Nov 2026. Sources: Appointy pricing · Zapier: Appointy integrations · Appointy home

Set up once

How does the Appointy MCP server work? Your agent works in your own Appointy login.

  1. 1Sign in to Appointy

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the busywork

    It drafts the work, you OK what customers get.

We never keep your Appointy password, and no booking, approval, move or cancellation goes through until you approve it. Who can see your session

Any MCP client

How to connect Appointy to your AI agent

  1. 1

    Sign in to Appointy in a Cloud Browser. Create a Cotlet account, open Appointy in its Cloud Browser, sign in with your admin login and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Appointy shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Appointy on after connecting? Refresh the connector and the 9 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: appointy_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: appointy_write
4 read, 5 write

All 9 Appointy MCP tools

Appointments6

Free slots come from your working hours and bookings. Booking, approving, moving and cancelling wait for your OK; your notification settings decide what the customer hears.

  • list_appointments Appointments for a day or range, by staff member or service. read

    Returns appointments with customer, service, staff member, start time, status and payment status.

    MCP callappointy_read → list_appointments

    REST endpointGET https://cotlet.dev/api/v1/appointy/appointments

    Parameters

    Parameters: list_appointments
    NameTypeDescription
    date_from string required string ISO date.
    date_to string string ISO date. Default: date_from.
    staff string string Staff member name.
    status string string pending, confirmed or cancelled.
    page integer integer Page number. Default: 1.

    Example input

    {
      "date_from": "date from"
    }

    Example response

    {
      "appointments": [
        {
          "appointment_id": "AP-662019",
          "customer": "Olivia Grant",
          "service": "60 min massage",
          "staff": "Rachel",
          "start": "2026-11-12T15:00",
          "status": "Confirmed"
        }
      ],
      "page": 1
    }
  • find_free_slots Open times for a service on a day. read

    Returns start times where the service fits, per staff member, using your working hours and existing bookings.

    MCP callappointy_read → find_free_slots

    REST endpointGET https://cotlet.dev/api/v1/appointy/free-slots/find

    Parameters

    Parameters: find_free_slots
    NameTypeDescription
    service string required string Service name.
    date string required string ISO date.
    staff string string Staff member name.

    Example input

    {
      "service": "service",
      "date": "date"
    }

    Example response

    {
      "service": "60 min massage",
      "slots": [
        {
          "staff": "Rachel",
          "start": "2026-11-13T10:00"
        },
        {
          "staff": "Tom",
          "start": "2026-11-13T13:30"
        }
      ]
    }
  • book_appointment Books a service for a customer with a staff member. writeasks first

    Creates the appointment. Your Appointy notification settings decide whether the customer gets a confirmation and reminders. By default you confirm each call; you can switch that off for this tool.

    MCP callappointy_write → book_appointment

    REST endpointPOST https://cotlet.dev/api/v1/appointy/customers/{customer_id}/appointments

    Parameters

    Parameters: book_appointment
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    service string required string Service name.
    staff string required string Staff member name.
    start string required string ISO date and time from find_free_slots.
    note string string Booking note.

    Example input

    {
      "customer_id": "CU-31890",
      "service": "60 min massage",
      "staff": "Rachel",
      "start": "2026-11-13T10:00"
    }

    Example response

    {
      "appointment_id": "AP-662140",
      "customer": "Olivia Grant",
      "service": "60 min massage",
      "staff": "Rachel",
      "start": "2026-11-13T10:00",
      "status": "Confirmed"
    }
  • approve_appointment Confirms a booking request that waits for approval. writeasks first

    Confirms a pending appointment when your booking page asks for approval. The customer gets your confirmation message. By default you confirm each call; you can switch that off for this tool.

    MCP callappointy_write → approve_appointment

    REST endpointPOST https://cotlet.dev/api/v1/appointy/appointments/{appointment_id}/approve

    Parameters

    Parameters: approve_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.

    Example input

    {
      "appointment_id": "appointment_8c41d2"
    }

    Example response

    {
      "appointment_id": "AP-662201",
      "status": "Confirmed"
    }
  • reschedule_appointment Moves an appointment to a new time or staff member. writeasks first

    Moves the appointment. Your notification settings decide whether the customer hears about it. By default you confirm each call; you can switch that off for this tool.

    MCP callappointy_write → reschedule_appointment

    REST endpointPOST https://cotlet.dev/api/v1/appointy/appointments/{appointment_id}/reschedule

    Parameters

    Parameters: reschedule_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    start string required string New ISO date and time.
    staff string string New staff member. Default: unchanged.

    Example input

    {
      "appointment_id": "appointment_8c41d2",
      "start": "start"
    }

    Example response

    {
      "appointment_id": "AP-662019",
      "start": "2026-11-14T11:00",
      "staff": "Tom",
      "status": "Confirmed"
    }
  • cancel_appointment Cancels an appointment. writeasks first

    Cancels the appointment and frees the slot. Refunds, if any, stay in Appointy. By default you confirm each call; you can switch that off for this tool.

    MCP callappointy_write → cancel_appointment

    REST endpointPOST https://cotlet.dev/api/v1/appointy/appointments/{appointment_id}/cancel

    Parameters

    Parameters: cancel_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    reason string string Cancellation reason.

    Example input

    {
      "appointment_id": "appointment_8c41d2"
    }

    Example response

    {
      "appointment_id": "AP-662019",
      "status": "Cancelled"
    }

Customers3

Search matches name, email and phone, so a returning customer is found before a duplicate is made.

  • list_customers Customers, searchable by name, email or phone. read

    Returns customers with ID, contact details and the number of bookings.

    MCP callappointy_read → list_customers

    REST endpointGET https://cotlet.dev/api/v1/appointy/customers

    Parameters

    Parameters: list_customers
    NameTypeDescription
    query string string Name, email or phone.
    page integer integer Page number. Default: 1.

    Example response

    {
      "customers": [
        {
          "customer_id": "CU-31890",
          "name": "Olivia Grant",
          "email": "olivia@example.com",
          "phone": "555-0118",
          "bookings": 7
        }
      ],
      "page": 1
    }
  • get_customer One customer with past and upcoming appointments. read

    Returns contact details, notes, past appointments with service and staff, and upcoming bookings.

    MCP callappointy_read → get_customer

    REST endpointGET https://cotlet.dev/api/v1/appointy/customers/{customer_id}

    Parameters

    Parameters: get_customer
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.

    Example input

    {
      "customer_id": "customer_8c41d2"
    }

    Example response

    {
      "customer_id": "CU-31890",
      "name": "Olivia Grant",
      "past": [
        {
          "service": "60 min massage",
          "staff": "Rachel",
          "date": "2026-10-15"
        }
      ],
      "upcoming": [
        {
          "appointment_id": "AP-662019",
          "start": "2026-11-12T15:00"
        }
      ]
    }
  • create_customer Adds a customer. write

    Creates the customer. Search list_customers first so a returning customer does not become a duplicate. Reaches no one, so it runs at once.

    MCP callappointy_write → create_customer

    REST endpointPOST https://cotlet.dev/api/v1/appointy/customers

    Parameters

    Parameters: create_customer
    NameTypeDescription
    name string required string Full name.
    email string string Email.
    phone string string Phone number.

    Example input

    {
      "name": "Jane Doe"
    }

    Example response

    {
      "customer_id": "CU-32004",
      "name": "Ben Carter",
      "email": "ben@example.com"
    }
Encrypted, revocable

Who can see my Appointy session, and how do I revoke it?

  • What we store

    Your signed-in Appointy profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 9 Appointy tools, never the session cookie.

  • What the session sees

    What your login sees: calendar, customers, services, staff.

  • What no tool touches

    Payments and refunds, booking page design, plan, deletes.

  • If Appointy signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable for agents, reset the browser, or change your Appointy password.

Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Tested every 12 h

What happens when Appointy changes? We repair the tool; your prompts stay the same.

between tests of the Appointy reads
12 h
between tests of sends a customer would notice
24 h
for a call to a Appointy tool paused for repair
$0

When Appointy moves a button on the calendar or renames an appointment status, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

4 tools ask first

Approvals, undo and mistakes Customers get nothing until you say so.

  1. 01 Reads pending requests For the day you name.
  2. 02 Checks each against the calendar Overlaps and staff hours.
  3. 03 Lists clashes for you And proposes another time.
  4. 04 Waits, then approves The batch shows up in your Cotlet console first.
Which Appointy actions can be undone
ActionUndo
Book an appointmentYes, cancel it
Approve a requestCancel it; the confirmation stays sent
Move an appointmentMove it back; a message already sent stays sent
Cancel an appointmentBook it again
Add a customerYes, edit it in Appointy

4 of 9 tools ask first: book_appointment, reschedule_appointment, cancel_appointment, approve_appointment. A new customer reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "book_appointment",
  "arguments": {
    "customer_id": "CU-31890",
    "service": "60 min massage",
    "staff": "Rachel",
    "start": "2026-11-13T10:00"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/appointy/customers/CU-31890/appointments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"60 min massage","staff":"Rachel","start":"2026-11-13T10:00"}'
Response
{
  "appointment_id": "AP-662140",
  "customer": "Olivia Grant",
  "service": "60 min massage",
  "staff": "Rachel",
  "start": "2026-11-13T10:00",
  "status": "Confirmed"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/appointy with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.

Pay per call

How much does the Appointy MCP server cost?

About $35 a monthfor a massage studio with 3 therapists, 6,100 credits. Your Appointy plan stays as it is.

A month of Appointy scheduling for a 3-therapist studio, in credits
JobCallsCredits
Booking from a message3 × 902,700
Pending requests approved4 × 261,040
Appointment moved3 × 20600
Tomorrow's schedule checked1 × 26260
Cloud Browser, 30 days1,500
Total6,100
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on any Appointy plan

Appointy publishes no booking counts, so the month is our example. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Appointy MCP server on GitHub, Zapier or hosted: which to use The API is Enterprise only; Zapier mostly listens.

Other ways to connect Appointy, checked 8 Nov 2026
OptionWhat it doesWhere it stops
Zapier: AppointyStarts workflows on new, updated or cancelled appointments; creates customers.Cannot book, move, approve or cancel.
Appointy private APIFull access for your own developer.Enterprise plan only; you build and host the code.
By handEvery screen of Appointy, one booking at a time.Your front desk's time.

If you only need to copy new bookings into another app, the Zapier triggers do it. To book, approve and reschedule by asking in ChatGPT or Claude, Cotlet works in the Appointy account you already have.

Appointy MCP setup on GitHub and PyPI

Prefer code? Our public repo has a ready Appointy MCP config for Claude Code, ChatGPT and Cursor, an agent skill and a small command-line tool. Add your Cotlet API key and your agent works in your own Appointy account.

cotlet-connect/appointy-mcp
  • MCP config for Claude Code, Cursor and Codex
  • Agent skill and Cursor rules for Appointy
  • Clone it and run, Python standard library only
  • Elastic License 2.0, free in your own business
EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Appointy tools go to contact@cotlet.dev.

Appointy MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev, open Appointy under Integrations in the console and sign in to Appointy in its Cloud Browser. The trial starts with your first app and asks for no card.

How do I connect Appointy to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Appointy once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Appointy account through Cotlet, in their phone apps too.

What can ChatGPT do in Appointy?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Appointy: book appointments from emails and messages; approve pending booking requests; reschedule when staff are out. You ask in plain words, and anything that reaches other people waits for your OK first.

Is there an official ChatGPT or Claude app for Appointy?

No. Appointy has no ChatGPT or Claude connector of its own and Appointy has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.

Can ChatGPT book appointments in Appointy?

Yes, with Cotlet. ChatGPT finds the customer, checks free slots for the service and books it with the staff member you name, after your OK.

Can ChatGPT reschedule appointments in Appointy?

Yes, with Cotlet. ChatGPT moves appointments to another time or staff member, for example when someone is out. Each move waits for your OK by default.

Can ChatGPT approve booking requests in Appointy?

Yes, with Cotlet. ChatGPT reads pending requests, checks them against the calendar and confirms the ones you OK.

Do I need the Appointy Enterprise plan to use Cotlet?

No. Cotlet works through your own Appointy sign-in, so it needs no private API, which Appointy lists only on Enterprise. It can do what your plan and login can do.

Does it send reminders?

Appointy sends its own confirmations and reminders by your settings. A booking the agent makes is a normal Appointy booking, so the same reminders go out.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 9 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Appointy?

No. Cotlet is independent and not affiliated with Appointy.

Hand the Appointy bookings to your agent.

Free 7-day trial with 2,000 credits, no card needed.