Create an appointment
Needs: Roster, Read-write
Creates an appointment. The end must be after the start. Any field outside the list returns a 422 naming the unsupported fields.
curl -X POST "https://app.imploy.com.au/api/integrations/v1/appointments" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"appointment_address": "1 Example St, Perth WA 6000",
"appointment_type": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
}'
import requests
import json
url = "https://app.imploy.com.au/api/integrations/v1/appointments"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"appointment_address": "1 Example St, Perth WA 6000",
"appointment_type": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app.imploy.com.au/api/integrations/v1/appointments", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"appointment_address": "1 Example St, Perth WA 6000",
"appointment_type": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"appointment_address": "1 Example St, Perth WA 6000",
"appointment_type": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
}`)
req, err := http.NewRequest("POST", "https://app.imploy.com.au/api/integrations/v1/appointments", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app.imploy.com.au/api/integrations/v1/appointments')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"appointment_address": "1 Example St, Perth WA 6000",
"appointment_type": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
}'
response = http.request(request)
puts response.body
{
"data": [
{
"id": 55,
"appointment_title": "Morning support",
"client_id": 12,
"employee_id": 31,
"start": "2026-03-02 09:00:00",
"end": "2026-03-02 13:00:00",
"appointment_address": "1 Example St, Perth WA 6000",
"is_draft": 1,
"appointment_cancelled": 0,
"is_deleted": 0,
"created_at": "2026-02-20T01:00:00.000000Z",
"updated_at": "2026-02-20T01:00:00.000000Z"
}
]
}
{
"message": "Invalid or expired access token."
}
{
"message": "Access token does not permit this action."
}
{
"message": "End must be after start.",
"errors": {
"end": [
"End must be after start."
]
}
}
{
"message": "Too many requests."
}
/appointments
Target server for requests. Edit to use your own host.
An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
imp_at_. Send it as Authorization: Bearer imp_at_XXXX.The media type of the request body
Up to 200 characters. Required on create.
An existing client id. Required on create.
An existing staff id, or null. Suppliers and archived staff are refused.
A date and time. Required on create.
A date and time after the start. Required on create.
Up to 500 characters. Required on create.
A configured service name (price book or NDIS price type). Required on create.
Publish to staff.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Body
Up to 200 characters. Required on create.
An existing client id. Required on create.
An existing staff id, or null. Suppliers and archived staff are refused.
A date and time. Required on create.
A date and time after the start. Required on create.
Up to 500 characters. Required on create.
A configured service name (price book or NDIS price type). Required on create.
Publish to staff.