Public APICalendars
Update a calendar
Partial update — only included fields are changed. Passing
schedules replaces the calendar's full schedules array.
AuthorizationBearer <token>
API key in the Authorization: Bearer <key> header.
Keys are created in the SMAO dashboard (Settings → API Keys).
In: header
Path Parameters
calendar_idstring
Match
^[a-f0-9]{24}$name?string
Whitespace is trimmed; the trimmed name must be at least 1 character.
Length
1 <= length <= 100timezone?string
Length
1 <= length <= 100schedules?
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://api.smao.ai/api/v1/calendars/string" \ -H "Content-Type: application/json" \ -d '{}'{
"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"
}
}{
"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": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "conflict",
"message": "A calendar with this name already exists"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}