Public APICalendars
List calendars (paginated)
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).
Default
50Range
1 <= value <= 100Response 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."
}
}