Zcal Scheduling Links

Unlimited shareable scheduling links, meeting polls, and customizable booking pages let invitees self-serve a time. This is a product surface managed through the Zcal web application; there is no documented public REST API for creating or managing scheduling links programmatically.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scheduling-links"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zcal-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Zcal API
  description: >-
    Zcal is a free scheduling platform for booking meetings via shareable
    scheduling links, meeting polls, and team pages (round-robin and
    collective).


    IMPORTANT — API availability: As of 2026-06-21, Zcal does NOT publish a
    documented, general-purpose public REST API for creating or reading
    scheduling links, bookings, or events. This OpenAPI document therefore
    declares an empty `paths` object rather than fabricating endpoints.


    The only documented programmatic surface is OUTBOUND WEBHOOKS. When a
    booking is created, rescheduled, or cancelled, Zcal sends an HTTP POST
    with a JSON payload to a subscriber URL you configure under your account
    or team integrations (https://zcal.co/account/integrations). Supported
    event types are `event.created`, `event.rescheduled`, and
    `event.cancelled`. Each request may include an optional
    `x-zcal-webhook-signature` header containing an HMAC SHA-256 hash of the
    payload signed with your secret key for verification.


    The webhook payload has top-level fields `type` (the event type),
    `created_at` (ISO 8601 timestamp), and `data` (an Event object with
    `id`, `eventName`, `startDate`, `duration`, `cancelled`, `hosts`,
    `attendees`, `location`, optional `team`, and invite metadata).


    Inbound automation (creating links, reading bookings) is performed via
    no-code connectors such as Zapier and Make, and through native
    integrations including Zoom, Stripe, Google Analytics, and Meta Pixel —
    not via a published HTTP API. See the webhooks documentation for details.
  termsOfService: https://zcal.co/terms
  contact:
    name: Zcal Support
    url: https://help.zcal.co/
  version: '1.0'
servers:
  - url: https://zcal.co
    description: >-
      Zcal web application host. No public REST API base path is documented;
      this server entry is informational only.
paths: {}
components:
  schemas:
    WebhookEvent:
      type: object
      description: >-
        Documentation-only schema describing the outbound webhook payload Zcal
        POSTs to a subscriber URL. This is NOT a callable REST endpoint
        request/response; it documents the body your endpoint will receive.
      properties:
        type:
          type: string
          description: The webhook event type.
          enum:
            - event.created
            - event.rescheduled
            - event.cancelled
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp indicating when the webhook was generated.
        data:
          $ref: '#/components/schemas/Event'
    Event:
      type: object
      description: Booking (event) details included in the webhook payload.
      properties:
        id:
          type: string
          description: Unique identifier for the event.
        eventName:
          type: string
          description: Display name of the booking.
        startDate:
          type: string
          format: date-time
          description: Start of the booking in ISO 8601 format.
        duration:
          type: integer
          description: Duration of the booking in minutes.
        cancelled:
          type: boolean
          description: Whether the booking has been cancelled.
        hosts:
          type: array
          description: Host participants (name and email).
          items:
            $ref: '#/components/schemas/Host'
        attendees:
          type: array
          description: Attendee participants (invitees and guests).
          items:
            $ref: '#/components/schemas/Attendee'
        location:
          $ref: '#/components/schemas/Location'
        team:
          $ref: '#/components/schemas/Team'
    Host:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
          format: email
    Attendee:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
          format: email
        timezone:
          type: string
        phone:
          type: string
        type:
          type: string
          description: Participant role.
          enum:
            - invitee
            - guest
        responses:
          type: array
          description: Responses to custom booking questions.
          items:
            type: object
    Location:
      type: object
      properties:
        type:
          type: string
          description: Location type (e.g., online or in-person).
        url:
          type: string
          description: Meeting URL for online locations.
        id:
          type: string
          description: Meeting ID for online locations.
        passcode:
          type: string
          description: Meeting passcode for online locations.
    Team:
      type: object
      description: Optional team details for team (collective/round-robin) invites.
      properties:
        id:
          type: string
        name:
          type: string