Create a new schedule
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dr. Smith Schedule",
"availability_type_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointment",
"color": "#3B82F6",
"ai_agents": [
"<string>"
],
"human_agents": [
"<string>"
],
"custom_questions": [
{
"name": "Reason for visit",
"type": "text",
"required": false,
"description": "Optional helper text"
}
]
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/schedules"
payload = {
"name": "Dr. Smith Schedule",
"availability_type_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointment",
"color": "#3B82F6",
"ai_agents": ["<string>"],
"human_agents": ["<string>"],
"custom_questions": [
{
"name": "Reason for visit",
"type": "text",
"required": False,
"description": "Optional helper text"
}
]
}
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({
name: 'Dr. Smith Schedule',
availability_type_uuid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
type: 'appointment',
color: '#3B82F6',
ai_agents: ['<string>'],
human_agents: ['<string>'],
custom_questions: [
{
name: 'Reason for visit',
type: 'text',
required: false,
description: 'Optional helper text'
}
]
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/schedules', 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://{subdomain}.mihu.ai/api/v1/schedules",
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([
'name' => 'Dr. Smith Schedule',
'availability_type_uuid' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'type' => 'appointment',
'color' => '#3B82F6',
'ai_agents' => [
'<string>'
],
'human_agents' => [
'<string>'
],
'custom_questions' => [
[
'name' => 'Reason for visit',
'type' => 'text',
'required' => false,
'description' => 'Optional helper text'
]
]
]),
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://{subdomain}.mihu.ai/api/v1/schedules"
payload := strings.NewReader("{\n \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\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://{subdomain}.mihu.ai/api/v1/schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/schedules")
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 \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodySchedules
Create a new schedule
Creates a bookable schedule and links it to an availability type. Use this after creating or selecting an availability type. The schedule can then be assigned to agents for appointment booking and can collect custom question answers during booking.
POST
/
api
/
v1
/
schedules
Create a new schedule
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dr. Smith Schedule",
"availability_type_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointment",
"color": "#3B82F6",
"ai_agents": [
"<string>"
],
"human_agents": [
"<string>"
],
"custom_questions": [
{
"name": "Reason for visit",
"type": "text",
"required": false,
"description": "Optional helper text"
}
]
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/schedules"
payload = {
"name": "Dr. Smith Schedule",
"availability_type_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointment",
"color": "#3B82F6",
"ai_agents": ["<string>"],
"human_agents": ["<string>"],
"custom_questions": [
{
"name": "Reason for visit",
"type": "text",
"required": False,
"description": "Optional helper text"
}
]
}
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({
name: 'Dr. Smith Schedule',
availability_type_uuid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
type: 'appointment',
color: '#3B82F6',
ai_agents: ['<string>'],
human_agents: ['<string>'],
custom_questions: [
{
name: 'Reason for visit',
type: 'text',
required: false,
description: 'Optional helper text'
}
]
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/schedules', 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://{subdomain}.mihu.ai/api/v1/schedules",
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([
'name' => 'Dr. Smith Schedule',
'availability_type_uuid' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'type' => 'appointment',
'color' => '#3B82F6',
'ai_agents' => [
'<string>'
],
'human_agents' => [
'<string>'
],
'custom_questions' => [
[
'name' => 'Reason for visit',
'type' => 'text',
'required' => false,
'description' => 'Optional helper text'
]
]
]),
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://{subdomain}.mihu.ai/api/v1/schedules"
payload := strings.NewReader("{\n \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\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://{subdomain}.mihu.ai/api/v1/schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/schedules")
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 \"name\": \"Dr. Smith Schedule\",\n \"availability_type_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"appointment\",\n \"color\": \"#3B82F6\",\n \"ai_agents\": [\n \"<string>\"\n ],\n \"human_agents\": [\n \"<string>\"\n ],\n \"custom_questions\": [\n {\n \"name\": \"Reason for visit\",\n \"type\": \"text\",\n \"required\": false,\n \"description\": \"Optional helper text\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"
Body
application/json
Example:
"Dr. Smith Schedule"
Example:
"appointment"
Example:
"#3B82F6"
Questions asked during booking. type defaults to 'text' and required to false when omitted.
Show child attributes
Show child attributes
Response
201
Schedule created successfully
⌘I