SMAO API Documentation
Public APICalendars

List calendars (paginated)

GET
/calendars
AuthorizationBearer <token>

API key in the Authorization: Bearer <key> header. Keys are created in the SMAO dashboard (Settings → API Keys).

In: header

Query Parameters

cursor?string

Opaque cursor from a prior meta.next_cursor. Base64url-encoded (unpadded) — do not parse or construct it manually.

Match^[A-Za-z0-9_-]+$
limit?integer

Items per page (1–100, default 50).

Default50
Range1 <= value <= 100

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.smao.ai/api/v1/calendars"
{
  "data": [
    {
      "id": "65f8fa6f1a9d8e0012ab34cd",
      "name": "Main Office",
      "timezone": "Europe/Berlin",
      "schedules": [
        {
          "id": "65f8fa6f1a9d8e0012ab34cd",
          "type": "opening_hours",
          "weekly_schedule": {
            "mon": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "tue": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "wed": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "thu": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "fri": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "sat": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            },
            "sun": {
              "is_open": true,
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            }
          },
          "overrides": [
            {
              "date": "2026-12-24",
              "type": "closed",
              "reason": "Christmas Eve",
              "slots": [
                {
                  "from": "09:00",
                  "to": "17:00"
                }
              ]
            }
          ]
        }
      ],
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "meta": {
    "has_more": true,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "validation_failed",
    "message": "Validation failed"
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Missing API key"
  }
}
{
  "error": {
    "code": "subscription_required",
    "message": "This feature is not available in your current subscription. Please upgrade to a higher plan"
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "No permission"
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded"
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred."
  }
}