curl --request PATCH \
--url https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"periods": [
{
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
},
{
"wday": "tuesday",
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
}
],
"time_zone": "America/New_York"
}
'const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
periods: [
{wday: 'monday', start_time: '09:00 AM', end_time: '05:00 PM'},
{wday: 'tuesday', start_time: '11:00 AM', end_time: '04:00 PM'}
],
overrides: [
{date: '2025-03-07', periods: [{start_time: '11:00 AM', end_time: '04:00 PM'}]}
],
time_zone: 'America/New_York'
})
};
fetch('https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id}"
payload = {
"periods": [
{
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
},
{
"wday": "tuesday",
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
}
],
"time_zone": "America/New_York"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"message": "<string>",
"availability": {
"id": "01ea5ddf-ed00-4bed-bfa3-ba8ea80a856a",
"sid": "2nq7q5c",
"name": "Availability for custom user",
"default": false,
"periods": [
{
"id": "21c812a7-3859-4f01-b214-850e6f11caad",
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "10:00 AM",
"end_time": "03:00 PM"
}
]
}
],
"user": {
"id": "b6d02dfa-8ef6-453d-b9f7-67a6f20bcaa6",
"name": "Oliver Smith",
"email": "oliver@example.com"
}
}
}Update availability
Update an availability. Supports overriding specific dates to add, change, or block hours.
curl --request PATCH \
--url https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"periods": [
{
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
},
{
"wday": "tuesday",
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
}
],
"time_zone": "America/New_York"
}
'const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
periods: [
{wday: 'monday', start_time: '09:00 AM', end_time: '05:00 PM'},
{wday: 'tuesday', start_time: '11:00 AM', end_time: '04:00 PM'}
],
overrides: [
{date: '2025-03-07', periods: [{start_time: '11:00 AM', end_time: '04:00 PM'}]}
],
time_zone: 'America/New_York'
})
};
fetch('https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetocal.com/api/external/v2/availabilities/{availability_id}"
payload = {
"periods": [
{
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
},
{
"wday": "tuesday",
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
}
],
"time_zone": "America/New_York"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"message": "<string>",
"availability": {
"id": "01ea5ddf-ed00-4bed-bfa3-ba8ea80a856a",
"sid": "2nq7q5c",
"name": "Availability for custom user",
"default": false,
"periods": [
{
"id": "21c812a7-3859-4f01-b214-850e6f11caad",
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
}
],
"overrides": [
{
"date": "2025-03-07",
"periods": [
{
"start_time": "10:00 AM",
"end_time": "03:00 PM"
}
]
}
],
"user": {
"id": "b6d02dfa-8ef6-453d-b9f7-67a6f20bcaa6",
"name": "Oliver Smith",
"email": "oliver@example.com"
}
}
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Path Parameters
Id of the availability can be retrieved by going to the particular availability page, and copying it from the URL.
Body
[
{
"wday": "monday",
"start_time": "09:00 AM",
"end_time": "05:00 PM"
},
{
"wday": "tuesday",
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
Set an override for specific days. To set a date as unavailable, pass a blank array to the periods property. You can remove existing overrides by omitting the periods property.
Hide child attributes
Hide child attributes
[
{
"date": "2025-03-07",
"periods": [
{
"start_time": "11:00 AM",
"end_time": "04:00 PM"
}
]
}
]
Optional IANA timezone name (e.g., "America/New_York", "Asia/Kolkata"). When provided, the start_time and end_time values in periods and overrides are assumed to be in this timezone and will be converted to the user's timezone before saving. If not provided, times are assumed to be in the user's timezone.
"America/New_York"
Response
OK - Availability updated successfully
Hide child attributes
Hide child attributes
Unique identifier for the availability configuration.
"01ea5ddf-ed00-4bed-bfa3-ba8ea80a856a"
Short identifier (SID) for the availability, used in URLs and API calls for easy reference.
"2nq7q5c"
Human-readable name for the availability configuration (e.g., "Working hours", "Custom schedule").
"Availability for custom user"
Indicates whether this is the default availability configuration for the team member. Only one availability can be set as default per user.
false
List of time periods defining when the team member is available for meetings throughout the week.
Hide child attributes
Hide child attributes
Unique identifier for this specific availability period.
"21c812a7-3859-4f01-b214-850e6f11caad"
Day of the week for this availability period. Valid values are "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday".
monday, tuesday, wednesday, thursday, friday, saturday, sunday "monday"
Start time of the availability period in 12-hour format with AM/PM designation.
"09:00 AM"
End time of the availability period in 12-hour format with AM/PM designation.
"05:00 PM"
List of date-specific availability overrides (e.g., holidays, vacation days, or special working hours for specific dates).
Hide child attributes
Hide child attributes
The specific date for this availability override in YYYY-MM-DD format.
"2025-03-07"
Time periods for this specific date. Set as empty array ([]) to mark the date as unavailable. If periods are provided, they override the regular weekly schedule for this date.
Hide child attributes
Hide child attributes
Information about the team member this availability configuration belongs to.
Hide child attributes
Hide child attributes