Appointments
Create availability exception
Requires appointments:settings and an account administrator. Omit resource_id to apply the exception to every resource. Timestamps must be RFC3339 instants with an explicit offset. An open interval can add availability when weekly rules are inactive or outside their date range; a closed interval removes overlapping availability.
POST
/
api
/
v2
/
accounts
/
{accountId}
/
appointments
/
availability
/
exceptions
Create availability exception
curl --request POST \
--url https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ends_at": "2023-11-07T05:31:56Z",
"kind": "closed",
"reason": "Public holiday",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions"
payload = {
"ends_at": "2023-11-07T05:31:56Z",
"kind": "closed",
"reason": "Public holiday",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ends_at: '2023-11-07T05:31:56Z',
kind: 'closed',
reason: 'Public holiday',
resource_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
starts_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ends_at' => '2023-11-07T05:31:56Z',
'kind' => 'closed',
'reason' => 'Public holiday',
'resource_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'starts_at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions"
payload := strings.NewReader("{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"account_id": 123,
"created_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"reason": "<string>",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}Authorizations
Your personal access token where supported, or a scoped API key (hc_…) created inside HueChat at Account → Developer API. Send it as Authorization: Bearer <token>.
Path Parameters
HueChat account ID
Body
application/json
Open or closed time range
⌘I
Create availability exception
curl --request POST \
--url https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ends_at": "2023-11-07T05:31:56Z",
"kind": "closed",
"reason": "Public holiday",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions"
payload = {
"ends_at": "2023-11-07T05:31:56Z",
"kind": "closed",
"reason": "Public holiday",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ends_at: '2023-11-07T05:31:56Z',
kind: 'closed',
reason: 'Public holiday',
resource_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
starts_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ends_at' => '2023-11-07T05:31:56Z',
'kind' => 'closed',
'reason' => 'Public holiday',
'resource_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'starts_at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions"
payload := strings.NewReader("{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.huechat.ai/api/v2/accounts/{accountId}/appointments/availability/exceptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ends_at\": \"2023-11-07T05:31:56Z\",\n \"kind\": \"closed\",\n \"reason\": \"Public holiday\",\n \"resource_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"starts_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"account_id": 123,
"created_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"reason": "<string>",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}{
"error": "<string>",
"limit": "<string>"
}
