Skedda API and MCP server Let your AI agent run your Skedda bookings.

Bookings, spaces, booking requests, usage and the activity feed of your Skedda venue. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

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

12 tools Read and write

Requests to reports

What can you automate in Skedda? Use an AI agent, a workflow or a script.

  • List bookings for any date range

  • Report space usage each week

  • Approve or reject booking requests

  • Block spaces for holidays and repairs

  • Move or cancel bookings when a room closes

  • Find who changed a booking

Read-only API

Does Skedda have an MCP server or an API? A read-only API, and no MCP server.

Skedda has a read-only API in beta and no MCP server (checked 31 Oct 2026). It lists booking occurrences and spaces, and sends webhooks for new, changed, cancelled and checked-in bookings. It cannot create, update or cancel a booking. Cotlet runs 12 Skedda tools hosted, over MCP for agents and REST for scripts.

  • The API needs Skedda Premier or AllBooked Advanced. A key from another plan gets a 403.
  • Booking requests and the activity feed are not in the API. Zapier has triggers for new bookings and users, and no actions.
  • Skedda's help center shows how to have Claude or ChatGPT write a script against the read-only API. The script runs on your computer and cannot change a booking.
Skedda with its API, Zapier and Cotlet compared
What you need Official APIZapierCotlet
List bookings and spaces Yes, Premier plan New bookings only Yes
Push new bookings as they happen Webhooks, Premier plan New bookings, no edits No, you schedule a run
Create, move or cancel a booking No No Yes, after your OK
Approve or reject booking requests No No Yes, after your OK
Read the activity feed Not as a log No Yes

Checked 31 Oct 2026. Sources: Skedda API reference (beta) · Skedda Help: Using the API with AI assistants · Skedda Help: Zapier trigger options · Skedda Help: Webhooks

Set up once

How does Cotlet connect to Skedda? One account, two ways to connect.

  1. 1Sign in to Skedda

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your Skedda password, and nothing that reaches your users happens until you approve it. Who can see your session

Any MCP client

Connect Skedda to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Enable Skedda for agents. Sign up, log in to Skedda in its Cloud Browser, then press Enable for agents.

  2. 2

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

  3. 3

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, https://cotlet.dev/mcp/v1, also carries Skedda next to your other apps. If you enable Skedda after connecting, refresh the connector so the new tools show up.

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

Claude Code:
claude mcp add --transport http cotlet-skedda \
  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-skedda": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-skedda]
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: skedda_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: skedda_write
Scripts and HTTP

How to use the Skedda REST API

Create your Cotlet API key

Create a Cotlet API key with access to Skedda and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Connect Skedda in Cotlet and enable it for agents. Account access: sign in as an Owner, System Admin or Booking Admin of your venue. Booking requests need a venue on Skedda Premier; the activity feed and users list are for system users.

Make your first Skedda API request

REST
curl "https://cotlet.dev/api/v1/skedda/bookings?date_from=2026-11-02&date_to=2026-11-08" \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read bookings and apply the date range

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "skedda",
  "tool": "list_bookings",
  "result": {
    "bookings": [
      {
        "booking_id": "bkg_2041",
        "title": "Band rehearsal",
        "type": "User",
        "spaces": [
          "Studio A"
        ],
        "holder": "Jake Miller",
        "start": "2026-11-02T18:00:00+01:00",
        "end": "2026-11-02T21:00:00+01:00",
        "price": 45,
        "payment_status": "Unpaid"
      },
      {
        "booking_id": "bkg_2042",
        "title": "Podcast recording",
        "type": "User",
        "spaces": [
          "Studio B"
        ],
        "holder": "Priya Shah",
        "start": "2026-11-03T10:00:00+01:00",
        "end": "2026-11-03T11:30:00+01:00",
        "price": 30,
        "payment_status": "Paid"
      }
    ]
  }
}

Returns the bookings of the List view for the dates you give, with space, holder, type, price and payment status. A booking in several spaces appears once with all its spaces.

Ask for one week or one month at a time. Skedda's own API limits a request to 31 days, and the same window keeps your results small.

Replace the dates with your own range. Narrow the list with space_id, holder_email, booking_type or search.

Results include holder names. Some venues book for schools or junior sports, so keep personal details out of any destination that does not need them. Compare changed values such as times and spaces as well as booking_id when you refresh a destination.

Skedda workflows for agents and automations

Skedda workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead list_booking_requests each morning and post the pending requests to a Slack channel for your booking admins.
MakeHTTP > Make a requestCall get_usage_summary for last month and add the booking count and hours of usage to a sheet for your board report.
Python or Node.jsREST APIRead get_activity_feed for the last week with activity_type set to cancel and save the cancelled bookings to a file.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Skedda; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

7 read, 5 write

Skedda API endpoints and MCP tools

Bookings and spaces6

Reads follow the List view. Create and change as a system user, so venue rules do not stop you, but a conflict is always refused.

  • list_spaces Spaces of the venue with type, tags and capacity. read

    Lists the venue spaces as the scheduler shows them, with name, type, tags and capacity. Filter by tag, type or minimum capacity. Nothing is changed.

    MCP callskedda_read → list_spaces

    REST endpointGET https://cotlet.dev/api/v1/skedda/spaces

    Parameters

    Parameters: list_spaces
    NameTypeDescription
    space_tag string string Only spaces with this space tag.
    space_type string string Only spaces of this type, as named in the venue.
    min_capacity integer integer Only spaces that seat at least this many people.

    Example response

    {
      "spaces": [
        {
          "space_id": "spc_101",
          "name": "Studio A",
          "type": "Rehearsal room",
          "tags": [
            "Music"
          ],
          "capacity": 8
        },
        {
          "space_id": "spc_102",
          "name": "Studio B",
          "type": "Rehearsal room",
          "tags": [
            "Music"
          ],
          "capacity": 4
        }
      ]
    }
  • list_bookings Bookings in a date range with space, holder, type, price and payment status. read

    Returns the bookings of the List view for the dates you give, oldest first. Each row has the space or spaces, holder, title, type, price and payment status. Filter by space, holder, booking type or a search term in the title, space names and custom fields. Nothing is changed.

    MCP callskedda_read → list_bookings

    REST endpointGET https://cotlet.dev/api/v1/skedda/bookings

    Parameters

    Parameters: list_bookings
    NameTypeDescription
    date_from date required date First day to list.
    date_to date required date Last day to list.
    space_id string string Only bookings in this space, from list_spaces.
    holder_email string string Only bookings held by this user.
    booking_type string string user, internal or unavailable.
    search string string Text to find in the title, space names or custom fields.

    Example input

    {
      "date_from": "2026-10-01",
      "date_to": "2026-10-01"
    }

    Example response

    {
      "bookings": [
        {
          "booking_id": "bkg_2041",
          "title": "Band rehearsal",
          "type": "User",
          "spaces": [
            "Studio A"
          ],
          "holder": "Jake Miller",
          "start": "2026-11-02T18:00:00+01:00",
          "end": "2026-11-02T21:00:00+01:00",
          "price": 45,
          "payment_status": "Unpaid"
        },
        {
          "booking_id": "bkg_2042",
          "title": "Podcast recording",
          "type": "User",
          "spaces": [
            "Studio B"
          ],
          "holder": "Priya Shah",
          "start": "2026-11-03T10:00:00+01:00",
          "end": "2026-11-03T11:30:00+01:00",
          "price": 30,
          "payment_status": "Paid"
        }
      ]
    }
  • get_booking One booking with holder, notes, price, custom fields and repeat rule. read

    Returns the full record of one booking: spaces, times, title, notes, holder, price, payment status, custom fields and the repeat sequence when there is one. Admin-only custom fields are included, so treat the result as private. Nothing is changed.

    MCP callskedda_read → get_booking

    REST endpointGET https://cotlet.dev/api/v1/skedda/bookings/{booking_id}

    Parameters

    Parameters: get_booking
    NameTypeDescription
    booking_id string required string Booking ID from list_bookings.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bkg_2041",
      "title": "Band rehearsal",
      "type": "User",
      "spaces": [
        "Studio A"
      ],
      "holder": {
        "name": "Jake Miller",
        "email": "jake@example.com"
      },
      "start": "2026-11-02T18:00:00+01:00",
      "end": "2026-11-02T21:00:00+01:00",
      "notes": "Bringing own amp",
      "price": 45,
      "payment_status": "Unpaid",
      "custom_fields": [
        {
          "name": "Equipment",
          "value": "Drum kit"
        }
      ],
      "repeat": null
    }
  • create_booking Book one or more spaces for a user, the venue or as unavailable. writeasks first

    Fills the New booking form as a system user. Booking type user needs a holder, internal and unavailable bookings have none, and unavailable blocks the space. Conflicts are never allowed, so a taken time is refused. Repeat rules from the form are supported. A user holder may be emailed, depending on the venue notification settings. By default you confirm each call; you can switch that off for this tool.

    MCP callskedda_write → create_booking

    REST endpointPOST https://cotlet.dev/api/v1/skedda/bookings

    Parameters

    Parameters: create_booking
    NameTypeDescription
    space_ids string[] required string[] Spaces to book, IDs from list_spaces.
    start datetime required datetime Start in the venue time zone.
    end datetime required datetime End in the venue time zone.
    booking_type string string user, internal or unavailable. Default: user.
    holder_email string string Holder of a user booking. Leave out to book for yourself.
    title string string Booking title.
    repeat object object Repeat rule: { frequency: day | week | month | year, until: date }.

    Example input

    {
      "space_ids": [
        "spc_101",
        "spc_102"
      ],
      "start": "2026-12-24T00:00:00+01:00",
      "end": "2026-12-26T23:59:00+01:00",
      "booking_type": "unavailable",
      "title": "Closed for holidays"
    }

    Example response

    {
      "booking_id": "bkg_2050",
      "title": "Closed for holidays",
      "type": "Unavailable",
      "spaces": [
        "Studio A",
        "Studio B"
      ],
      "start": "2026-12-24T00:00:00+01:00",
      "end": "2026-12-26T23:59:00+01:00",
      "occurrences": 1
    }
  • update_booking Change the time, spaces, title, holder or price of a booking. writeasks first

    Edits a booking as the edit screen does: date and time, spaces, title, notes, holder and price. Only the fields you send change. For a repeat booking, scope picks one occurrence, this and following, or the full series. Changing a single occurrence separates it from the series. The holder may be told about important changes. By default you confirm each call; you can switch that off for this tool.

    MCP callskedda_write → update_booking

    REST endpointPATCH https://cotlet.dev/api/v1/skedda/bookings/{booking_id}

    Parameters

    Parameters: update_booking
    NameTypeDescription
    booking_id string required string Booking ID from list_bookings.
    space_ids string[] string[] New spaces, IDs from list_spaces.
    start datetime datetime New start.
    end datetime datetime New end.
    title string string New title.
    holder_email string string New holder of a user booking.
    price number number New price.
    scope string string For a repeat booking: single (this occurrence), following (this and following) or series (the full series). Default: single.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bkg_2041",
      "spaces": [
        "Studio B"
      ],
      "start": "2026-11-02T18:00:00+01:00",
      "end": "2026-11-02T21:00:00+01:00",
      "updated": true
    }
  • cancel_booking Remove a booking from the schedule. writeasks first

    Removes a booking as the Cancel action does. A booking with payment status Paid cannot be removed until its payment status is changed. For a repeat booking, scope picks one occurrence, this and following, or the full series. The holder may be notified. By default you confirm each call; you can switch that off for this tool.

    MCP callskedda_write → cancel_booking

    REST endpointPOST https://cotlet.dev/api/v1/skedda/bookings/{booking_id}/cancel

    Parameters

    Parameters: cancel_booking
    NameTypeDescription
    booking_id string required string Booking ID from list_bookings.
    scope string string For a repeat booking: single (this occurrence), following (this and following) or series (the full series). Default: single.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bkg_2042",
      "status": "cancelled",
      "scope": "single"
    }

Booking requests3

Booking approvals exist only on Skedda Premier. Requests do not show on the scheduler.

  • list_booking_requests Pending booking requests waiting for an admin. read

    Lists the requests on the Booking requests page that wait for approval, oldest first, with requester, space, time and title. Booking approvals exist only on the Premier plan, so a venue without them returns an error. Requests do not appear on the scheduler and do not block each other. Nothing is changed.

    MCP callskedda_read → list_booking_requests

    REST endpointGET https://cotlet.dev/api/v1/skedda/booking-requests

    Parameters

    Parameters: list_booking_requests
    NameTypeDescription
    space_id string string Only requests for this space.

    Example response

    {
      "requests": [
        {
          "request_id": "req_310",
          "title": "Choir practice",
          "space": "Studio A",
          "requester": "Ana Lopez",
          "start": "2026-11-05T19:00:00+01:00",
          "end": "2026-11-05T21:00:00+01:00",
          "submitted": "2026-10-30T09:12:00+01:00"
        }
      ]
    }
  • approve_booking_request Approve a pending request and create the booking. writeasks first

    Approves a request from the Booking requests page, which creates the booking with the requested details. The requester is emailed, and if the booking involves payment they are charged only after approval. Quotas and rules were checked when the request was submitted. By default you confirm each call; you can switch that off for this tool.

    MCP callskedda_write → approve_booking_request

    REST endpointPOST https://cotlet.dev/api/v1/skedda/requests/{request_id}/booking-request/approve

    Parameters

    Parameters: approve_booking_request
    NameTypeDescription
    request_id string required string Request ID from list_booking_requests.

    Example input

    {
      "request_id": "request_8c41d2"
    }

    Example response

    {
      "request_id": "req_310",
      "status": "approved",
      "booking_id": "bkg_2051"
    }
  • reject_booking_request Reject a pending request with an optional note. writeasks first

    Rejects a request from the Booking requests page. The optional note is sent to the requester with the rejection email, and no booking is created. By default you confirm each call; you can switch that off for this tool.

    MCP callskedda_write → reject_booking_request

    REST endpointPOST https://cotlet.dev/api/v1/skedda/requests/{request_id}/booking-request/reject

    Parameters

    Parameters: reject_booking_request
    NameTypeDescription
    request_id string required string Request ID from list_booking_requests.
    note string string Rejection note for the requester.

    Example input

    {
      "request_id": "request_8c41d2"
    }

    Example response

    {
      "request_id": "req_311",
      "status": "rejected"
    }

Reports, activity and users3

Read only. The activity feed and the users list are open to system users.

  • get_usage_summary Booking count, hours of usage and total price for a period. read

    Returns the totals the List view shows to system users: total booking matches, total usage in hours and minutes, and total price when the venue uses pricing. A two-hour booking of two spaces counts as four hours, and unavailable bookings are left out of usage. Nothing is changed.

    MCP callskedda_read → get_usage_summary

    REST endpointGET https://cotlet.dev/api/v1/skedda/usage-summary

    Parameters

    Parameters: get_usage_summary
    NameTypeDescription
    date_from date required date First day of the period.
    date_to date required date Last day of the period.
    holder_email string string Only bookings held by this user.
    booking_type string string user, internal or unavailable.

    Example input

    {
      "date_from": "2026-10-01",
      "date_to": "2026-10-01"
    }

    Example response

    {
      "period": {
        "from": "2026-10-26",
        "to": "2026-11-01"
      },
      "bookings": 18,
      "usage": "31 h 30 min",
      "total_price": 940
    }
  • get_activity_feed Log of new, updated, cancelled, charged and checked-in bookings. read

    Reads the booking activity feed from the List view, newest first, with a timestamp, who did it and which booking. Filter by time range, activity type or a search term. Only system users can open the feed. Nothing is changed.

    MCP callskedda_read → get_activity_feed

    REST endpointGET https://cotlet.dev/api/v1/skedda/activity-feed

    Parameters

    Parameters: get_activity_feed
    NameTypeDescription
    date_from date required date First day of the log.
    date_to date required date Last day of the log.
    activity_type string string new, update, cancel, charge or check-in.
    search string string Text to find in the log.

    Example input

    {
      "date_from": "2026-10-01",
      "date_to": "2026-10-01"
    }

    Example response

    {
      "events": [
        {
          "time": "2026-11-02T08:40:00+01:00",
          "activity": "update",
          "booking_id": "bkg_2042",
          "title": "Podcast recording",
          "by": "Maya Brooks"
        },
        {
          "time": "2026-11-01T16:05:00+01:00",
          "activity": "new",
          "booking_id": "bkg_2041",
          "title": "Band rehearsal",
          "by": "Jake Miller"
        }
      ]
    }
  • list_users Venue users with email, user tags and system tag. read

    Lists the people on the Users page with name, email, user tags and system tag. Filter by a search term or a tag. It returns personal details, so use it only for the job at hand. Nothing is changed.

    MCP callskedda_read → list_users

    REST endpointGET https://cotlet.dev/api/v1/skedda/users

    Parameters

    Parameters: list_users
    NameTypeDescription
    search string string Part of a name or email.
    tag string string Only users with this user tag.

    Example response

    {
      "users": [
        {
          "name": "Jake Miller",
          "email": "jake@example.com",
          "tags": [
            "Band"
          ],
          "system_tag": null
        },
        {
          "name": "Maya Brooks",
          "email": "maya@example.com",
          "tags": [],
          "system_tag": "System Admin"
        }
      ]
    }
Encrypted, revocable

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

  • What we store

    Your logged-in Skedda profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 12 Skedda tools. Never the cookie.

  • What the session sees

    Your venue: bookings, user names and emails, notes, prices.

  • What no tool touches

    Plan, billing, charging cards, settings, API keys and removing users.

  • If Skedda asks to verify

    You complete any extra sign-in step yourself. We never do.

  • How to cut access

    Disable for agents, reset the browser, or remove the user in Skedda.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Account risk

Is it against Skedda's terms? Account safety Their terms limit bots to the interfaces Skedda provides.

"use bots, scripts or other automated means to access them, except through features or interfaces Skedda makes available for that purpose"
Skedda Terms for Venue Users, section 7, 20 Oct 2026

The venue agreement adds that a venue may not place excessive load on Skedda "through automated scripts or bots not permitted in the Documentation" (Terms of Service, section 2.3), and that Skedda may suspend access it believes breaches the terms. Neither text names AI agents. Cotlet works through the Skedda web app, but Skedda could still read it as automation. We found no public case of a Skedda account closed for automation (checked 31 Oct 2026, vendor pages and GitHub only).

How we keep your account looking like you

  • Your own admin account, logged in by you
  • One Cloud Browser with its own IP and cookies, so no new-device check every call
  • Anything that reaches your users waits for your OK
  • No tool removes a user, a space or a setting
  • If Skedda objects, we pause the Skedda tools for everyone within 24 h

Skedda's read-only API is the official route for reading bookings. Use it if all you need is a data feed on Premier.

Tested every 12 h

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

between tests of the Skedda reads
12 h
for a call to a Skedda tool paused for repair
$0

When Skedda moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

5 tools ask first

Approvals, undo and mistakes Your users hear nothing until you say so.

  1. 01 Reads the schedule The agent lists the bookings and spaces in the way.
  2. 02 Plans the change Which booking moves, which is blocked, which is declined.
  3. 03 Waits for your OK Each change shows up in your Cotlet console first.
  4. 04 Reports the result Booking IDs, new times and anything Skedda refused.
Which Skedda actions can be undone
ActionUndo
Create a bookingCancel it; the holder may already have an email
Move or edit a bookingEdit it back; the holder may have been told
Cancel a bookingCreate it again; a Paid booking cannot be cancelled
Approve a requestCancel the booking; the requester was emailed
Reject a requestThe requester submits a new request

All 5 write tools ask first, because each one can email a user or move a space they planned to use. The reads run at once. Switch the wait off per tool for a scheduled run.

Skedda never allows double bookings, so a change onto a taken time is refused and costs nothing.

MCP call
{
  "name": "create_booking",
  "arguments": {
    "space_ids": [
      "spc_101",
      "spc_102"
    ],
    "start": "2026-12-24T00:00:00+01:00",
    "end": "2026-12-26T23:59:00+01:00",
    "booking_type": "unavailable",
    "title": "Closed for holidays"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/skedda/bookings \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"space_ids":["spc_101","spc_102"],"start":"2026-12-24T00:00:00+01:00","end":"2026-12-26T23:59:00+01:00","booking_type":"unavailable","title":"Closed for holidays"}'
Tool output
{
  "booking_id": "bkg_2050",
  "title": "Closed for holidays",
  "type": "Unavailable",
  "spaces": [
    "Studio A",
    "Studio B"
  ],
  "start": "2026-12-24T00:00:00+01:00",
  "end": "2026-12-26T23:59:00+01:00",
  "occurrences": 1
}

Scripts and cron jobs reach the same tools over REST at /api/v1/skedda, with the same key and price. A REST write waits for your approval and answers with status pending. The tools table lists the REST path of each tool.

Pay per call

How much does the Skedda MCP server cost?

About $16 a monthfor a venue of about 25 spaces with a daily request pass, 2,760 credits. Your Skedda plan is billed by Skedda as before.

A month of Skedda jobs for one venue, in credits
JobCallsCredits
Weekly usage report4 × 4160
Daily booking request pass4 × 22880
Block spaces for a closure3 × 260
Move bookings when a room closes5 × 2100
Find who changed a booking2 × 360
Cloud Browser, 30 days1,500
Total2,760
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • No Skedda API plan needed

The month is our example: 22 working days of request passes and a few closures. Skedda's own plans start at 15 to 45 spaces and are billed by Skedda. 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

Skedda MCP server on GitHub, Zapier or hosted: which to use Nobody else offers one yet.

Other Skedda tools on GitHub and elsewhere, checked 31 Oct 2026
OptionWhat it doesWhere it stops
d-wynn/SkeddaBookerBooks parking, desks and rooms on a schedule with GitHub Actions. 0 stars, last push 21 Nov 2025.One person's booking script for your own login. No reads, no requests, no MCP.
ryanyz10/skedda_booking_botBooks tennis courts on Skedda. 5 stars, last push 2 Jun 2021.Unmaintained since 2021.
ZapierTriggers for new bookings and new users.No actions: it cannot create, move or cancel a booking. Edits are not sent.
Skedda API with an AI assistantClaude or ChatGPT writes a script that reads bookings, per Skedda's help center.Read only, Premier plan, and you run and fix the script.

There is no Skedda MCP server on GitHub and no hosted one besides ours. If you only need to read bookings and you are on Premier, the official API is enough and costs nothing extra. Cotlet adds the changes the API cannot make, and venues on lower plans.

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), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Skedda tools.

Skedda API and MCP: questions

How do I get access?

Create a free account at https://cotlet.dev, open Skedda under Integrations in the console and log in to Skedda in its Cloud Browser. The trial starts with your first app, no card asked.

How do I connect Skedda to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Skedda 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 Skedda account through Cotlet, in their phone apps too.

What can ChatGPT do in Skedda?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Skedda: report space usage every week; approve booking requests that fit the rules; block out spaces for holidays and maintenance. You ask in plain words, and anything that reaches other people waits for your OK first.

Which Skedda plan and role does the agent need?

Sign in as an Owner, System Admin or Booking Admin: they can create, edit and cancel bookings for others and open the activity feed (Skedda Help, checked 31 Oct 2026). Booking requests exist only on Skedda Premier. Cotlet does not need the API plan, because it works through the signed-in app.

Can I read bookings with the official API instead?

Yes, on Skedda Premier or AllBooked Advanced. The read-only beta API lists booking occurrences and spaces, up to 31 days per request, with a key from Integrations > Developer (checked 31 Oct 2026). It cannot change a booking or read booking requests.

Does Skedda have webhooks?

Yes, in beta on Premier and AllBooked Advanced: booking.created, booking.updated, booking.cancelled and booking_occurrence.checked_in (checked 31 Oct 2026). Cotlet does not receive them. Use them for your own system, and use Cotlet for the changes webhooks cannot make.

Is the MCP server different from the REST API?

Only the door is different. Both expose the same 12 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Skedda?

No. Cotlet is independent and not affiliated with Skedda.

Can I use the Skedda API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

Give your agent access to Skedda.

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