Update a schedule slot (user)
Updates an existing slot. Any subset of the slot fields may be supplied. Start and end times, when provided, must remain within the schedule's daily bounds. The schedule must belong to a department the authenticated user manages, and the slot must belong to that schedule.
HTTP:
bearerAuth
User bearer token. Default authentication for customer-facing endpoints.
Obtain a token by calling POST /login with your credentials, then send it
on every subsequent request as Authorization: Bearer <token>. The token
inherits the permissions and PBX scope of the authenticated user.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <token>
pbx_id
path · string · uuid
*
UUID of the PBX tenant.
schedule
path · string · uuid
*
UUID of the schedule.
slot
path · string · uuid
*
UUID of the slot.
accept
header · string
example:
application/jsonRequest body · required
Request schema
column_indexinteger
≥ 0≤ 99
example:
0start_timestring
Slot start time as `HH:MM`. Must be within the schedule bounds.
example:
09:00end_timestring
Slot end time as `HH:MM`. Must be after start_time and within bounds.
example:
17:00recurrence_typestring
enum:
none daily weekly customexample:
weeklyrecurrence_daysarray<integer>
Required when recurrence_type is weekly or custom.
[]integer
ISO weekday number (1 = Monday through 7 = Sunday).
≥ 1≤ 7
recurrence_start_datestring · date
Must be today or later.
example:
2026-03-02recurrence_end_datestring | null · date
example:
2026-12-31recurrence_countinteger | null
≥ 1≤ 730
example:
60is_activeboolean
example:
1Responses
The slot was updated.
Response schema
dataobject
A single recurring time slot belonging to a Tempus schedule, as serialized by
the `SlotResource`. A slot defines a daily start and end time together with a
recurrence rule (which days it repeats on and over what date range) and a
column position used to lay out overlapping slots side by side in the schedule
grid. Schedule entries (the concrete occurrences worked against the slot) are
attached through the related `TempusScheduleEntry` records and are not embedded
in this object.
This object documents the exact keys returned by the resource, not the raw
database columns. The `createdBy` field is only present when the `createdBy`
relation has been eager-loaded on the model; when it is loaded it is a compact
object (or null), and when it is not loaded the key is omitted entirely.
Times are returned trimmed to `HH:MM` (seconds removed). The recurrence date
fields are returned as plain `YYYY-MM-DD` calendar dates without a time
component.
id*string · uuid
Unique identifier of the schedule slot.
read-only
example:
550e8400-e29b-41d4-a716-446655440000scheduleId*string · uuid
Identifier of the parent Tempus schedule this slot belongs to.
example:
550e8400-e29b-41d4-a716-446655440001columnIndex*integer · int32
Zero-based column position used to render the slot in the schedule grid.
Overlapping active slots receive distinct column indices so they can be
displayed side by side; the lowest free index is assigned automatically.
example:
0startTime*string
Daily start time of the slot in 24-hour `HH:MM` form. Seconds are trimmed
from the stored value before serialization.
example:
09:00endTime*string
Daily end time of the slot in 24-hour `HH:MM` form. Seconds are trimmed
from the stored value before serialization.
example:
17:30recurrenceType*string
Recurrence frequency rule that governs how the slot repeats. Determines
how `recurrenceDays`, `recurrenceEndDate` and `recurrenceCount` are
interpreted.
enum:
daily weekly monthly noneexample:
weeklyrecurrenceDays*array<integer>
Days the slot recurs on, used together with `recurrenceType`. For a weekly
recurrence these are ISO weekday numbers (1 = Monday through 7 = Sunday);
for a monthly recurrence they are days of the month. Null when no specific
days apply to the recurrence rule.
[]integer · int32
example:
1recurrenceStartDate*string | null · date
First calendar date on which the slot recurrence becomes active, in
`YYYY-MM-DD` form. Null when no start date is set.
example:
2024-03-01recurrenceEndDate*string | null · date
Last calendar date on which the slot recurrence remains active, in
`YYYY-MM-DD` form. Null for an open-ended recurrence or when the
recurrence is instead bounded by `recurrenceCount`.
example:
2024-12-31recurrenceCount*integer | null · int32
Number of occurrences after which the recurrence ends. Null when the
recurrence is open-ended or bounded by `recurrenceEndDate` instead of a
fixed count.
example:
12isActive*boolean
Whether the slot is currently active. Inactive slots are retained but are
excluded from grid layout and column-index assignment.
example:
1createdByobject | null
Compact reference to the user who created the slot. Only present when the
`createdBy` relation is eager-loaded; the key is omitted otherwise. Null
when the relation is loaded but no creating user is associated.
read-only
idstring · uuid
Unique identifier of the user who created the slot.
example:
550e8400-e29b-41d4-a716-446655440002namestring
Display name of the user who created the slot.
example:
Customer SupportAuthorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example:
Authorization Token is missingThe authenticated user is outside the requested tenant, has no associated employee record, or has an empty schedules-management scope.
Response schema
No response body.
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
Unprocessable Parameters. This error is returned when a parameter is not valid.
Response schema
messagestring
example:
The given data was invalid.errorsobject
filterarray<string>
[]string
sortarray<string>
[]string
pagearray<string>
[]string
per_pagearray<string>
[]string
put
https://cockpit.voxbi.com/api/v1/{pbx_id}/schedule-management/{schedule}/slots/{slot}
Base URL
Request sample
curl -X PUT 'https://cockpit.voxbi.com/api/v1/{pbx_id}/schedule-management/{schedule}/slots/{slot}' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/{pbx_id}/schedule-management/{schedule}/slots/{slot}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.put('https://cockpit.voxbi.com/api/v1/{pbx_id}/schedule-management/{schedule}/slots/{slot}',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'PUT',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/{pbx_id}/schedule-management/{schedule}/slots/{slot}', false, $context);
$data = json_decode($response, true);
print_r($data);
Sample request
No request example provided.
No example for this status.
{ … }
"error": "Authorization Token is missing"
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57No example for this status.
{ … }
"message": [ … ]
"Data not found"
]
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57{ … }
"errors": { … }
"filter": [ … ],
"The filter field must be an array."
],
"sort": [ … ],
"The sort field must be a string."
],
"page": [ … ],
"The page field must be an integer."
],
"per_page": [ … ]
"The per page field must be an integer."
]
}
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57