Astrocal Booking Pages API

The Booking Pages API from Astrocal — 2 operation(s) for booking pages.

Operations 2

GET /v1/public/booking-page/{orgSlug}/{eventSlug} Get booking page data #
GET /v1/public/booking-page/{orgSlug} Get org booking page listing #

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/astrocal-dev:astrocal-dev-booking-pages-api"
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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

astrocal-dev-booking-pages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Astrocal Booking Pages API
  version: 1.0.0
  description: Scheduling API for AI agents and developers
servers:
- url: https://api.astrocal.dev
  description: Production
- url: https://api.astrocal.dev
  description: Local development
security:
- BearerAuth: []
tags:
- name: Booking Pages
paths:
  /v1/public/booking-page/{orgSlug}/{eventSlug}:
    get:
      tags:
      - Booking Pages
      summary: Get booking page data
      description: 'Public endpoint — no authentication required. Resolves org and event type by their URL slugs and returns the data needed to render a booking page, including branding settings. Returns { available: false } when the event type is inactive, booking page is disabled, or the org is suspended.'
      security: []
      parameters:
      - schema:
          type: string
          minLength: 1
          maxLength: 63
          pattern: ^[a-z0-9-]+$
        required: true
        name: orgSlug
        in: path
      - schema:
          type: string
          minLength: 1
          maxLength: 63
          pattern: ^[a-z0-9-]+$
        required: true
        name: eventSlug
        in: path
      responses:
        '200':
          description: Booking page data (available or unavailable)
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    available:
                      type: boolean
                      enum:
                      - true
                    org_slug:
                      type: string
                    event_type:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        title:
                          type: string
                        slug:
                          type: string
                        description:
                          type: string
                          nullable: true
                        duration_minutes:
                          type: integer
                        color:
                          type: string
                        timezone:
                          type: string
                        price_amount:
                          type: integer
                          nullable: true
                        price_currency:
                          type: string
                        duration_options:
                          type: array
                          nullable: true
                          items:
                            type: integer
                        max_attendees:
                          type: integer
                        waitlist_enabled:
                          type: boolean
                        waitlist_max:
                          type: integer
                        waitlist_ttl_days:
                          type: integer
                        conferencing_provider:
                          type: string
                          nullable: true
                          enum:
                          - zoom
                          - google_meet
                          - microsoft_teams
                          - custom
                          - in_person
                          - null
                        location:
                          type: string
                          nullable: true
                        created_at:
                          type: string
                        updated_at:
                          type: string
                      required:
                      - id
                      - title
                      - slug
                      - description
                      - duration_minutes
                      - color
                      - timezone
                      - price_amount
                      - price_currency
                      - duration_options
                      - max_attendees
                      - waitlist_enabled
                      - waitlist_max
                      - waitlist_ttl_days
                      - conferencing_provider
                      - location
                      - created_at
                      - updated_at
                    branding:
                      type: object
                      properties:
                        logo_url:
                          type: string
                          nullable: true
                        logo_alt_text:
                          type: string
                          nullable: true
                        remove_branding:
                          type: boolean
                        listing_page_enabled:
                          type: boolean
                      required:
                      - logo_url
                      - logo_alt_text
                      - remove_branding
                      - listing_page_enabled
                  required:
                  - available
                  - org_slug
                  - event_type
                  - branding
                - type: object
                  properties:
                    available:
                      type: boolean
                      enum:
                      - false
                    branding:
                      type: object
                      properties:
                        logo_url:
                          type: string
                          nullable: true
                        logo_alt_text:
                          type: string
                          nullable: true
                        remove_branding:
                          type: boolean
                        listing_page_enabled:
                          type: boolean
                      required:
                      - logo_url
                      - logo_alt_text
                      - remove_branding
                      - listing_page_enabled
                  required:
                  - available
                  - branding
        '404':
          description: Org or event type not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                    required:
                    - code
                    - message
                required:
                - error
      operationId: getV1PublicBookingPageByOrgSlugByEventSlug
      x-operation-id-source: derived
  /v1/public/booking-page/{orgSlug}:
    get:
      tags:
      - Booking Pages
      summary: Get org booking page listing
      description: 'Public endpoint — no authentication required. Returns the org''s branding and a list of all public event types (active, booking page enabled, non-test), ordered by title. Returns { available: false } when the org is suspended.'
      security: []
      parameters:
      - schema:
          type: string
          minLength: 1
          maxLength: 63
          pattern: ^[a-z0-9-]+$
        required: true
        name: orgSlug
        in: path
      responses:
        '200':
          description: Org booking page data (available or unavailable)
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    available:
                      type: boolean
                      enum:
                      - true
                    org_name:
                      type: string
                    org_slug:
                      type: string
                    event_types:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          title:
                            type: string
                          slug:
                            type: string
                          description:
                            type: string
                            nullable: true
                          duration_minutes:
                            type: integer
                          color:
                            type: string
                          price_amount:
                            type: integer
                            nullable: true
                          price_currency:
                            type: string
                          conferencing_provider:
                            type: string
                            nullable: true
                            enum:
                            - zoom
                            - google_meet
                            - microsoft_teams
                            - custom
                            - in_person
                            - null
                          location:
                            type: string
                            nullable: true
                        required:
                        - id
                        - title
                        - slug
                        - description
                        - duration_minutes
                        - color
                        - price_amount
                        - price_currency
                        - conferencing_provider
                        - location
                    branding:
                      type: object
                      properties:
                        logo_url:
                          type: string
                          nullable: true
                        logo_alt_text:
                          type: string
                          nullable: true
                        remove_branding:
                          type: boolean
                        listing_page_enabled:
                          type: boolean
                      required:
                      - logo_url
                      - logo_alt_text
                      - remove_branding
                      - listing_page_enabled
                  required:
                  - available
                  - org_name
                  - org_slug
                  - event_types
                  - branding
                - type: object
                  properties:
                    available:
                      type: boolean
                      enum:
                      - false
                    branding:
                      type: object
                      properties:
                        logo_url:
                          type: string
                          nullable: true
                        logo_alt_text:
                          type: string
                          nullable: true
                        remove_branding:
                          type: boolean
                        listing_page_enabled:
                          type: boolean
                      required:
                      - logo_url
                      - logo_alt_text
                      - remove_branding
                      - listing_page_enabled
                  required:
                  - available
                  - branding
        '404':
          description: Org not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                    required:
                    - code
                    - message
                required:
                - error
      operationId: getV1PublicBookingPageByOrgSlug
      x-operation-id-source: derived
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Use your API key as the bearer token.