Skip to content

Create a TeamGrid-managed appointment

POST
/appointments
curl --request POST \
--url https://api.de.teamgrid.app/v1/appointments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "allDay": true, "busy": true, "description": "example", "end": { "at": "2026-04-15T12:00:00Z", "timeZone": "example" }, "location": "example", "start": { "at": "2026-04-15T12:00:00Z", "timeZone": "example" }, "title": "example", "visibility": "default", "userId": "example" }'

The cell-local App re-authenticates the credential, derives the acting user from the credential principal, and applies tenant, sharing, plan, idempotency, and provider-management policy.

Idempotency-Key
required
string
>= 1 characters <= 128 characters /^[!-~]+$/

Unique request key retained for seven days. Within that window, reuse with different data is rejected.

Media typeapplication/json
object
allDay
boolean
busy
boolean
description
string
<= 50000 characters
end
required
object
at
required
string format: date-time
timeZone
string
>= 1 characters <= 128 characters
location
string
<= 1000 characters
start
required
object
at
required
string format: date-time
timeZone
string
>= 1 characters <= 128 characters
title
string
<= 500 characters
visibility
string
Allowed values: default private public
userId
string
>= 1 characters <= 128 characters

A newly created resource.

Media typeapplication/json
object
data
required
object
attributes
required
object
allDay
required
boolean
archived
required
boolean
busy
required
boolean
createdAt
required
string | null format: date-time
description
required
string | null
end
required
object
at
required
string format: date-time
timeZone
required
string | null
<= 128 characters
location
required
string | null
managedBy
required
string
Allowed values: provider teamgrid
redacted
required
boolean
revision
required
string
/^ap1-[a-f0-9]{64}$/
start
required
object
at
required
string format: date-time
timeZone
required
string | null
<= 128 characters
title
required
string | null
updatedAt
required
string | null format: date-time
userId
required
string
>= 1 characters <= 128 characters
visibility
required
string
Allowed values: default private public
id
required
string
type
required
Allowed value: appointment
meta
required
object
requestId
required
string
Example
{
"data": {
"attributes": {
"managedBy": "provider",
"visibility": "default"
},
"type": "appointment"
}
}
Idempotency-Replayed
string
Allowed values: false
ETag
required
string
/^"ap1-[a-f0-9]{64}"$/

Strong appointment revision returned by reads and mutations.

Cache-Control
required
string
Allowed value: private, no-store, no-transform

Prevents shared caching and representation transformations so the strong revision validator remains byte-for-byte usable for conditional requests.

The request is invalid.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The bearer credential is missing, invalid, expired, or revoked.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The credential has insufficient scope.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The request conflicts with the current resource state.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The credential or source exceeded its rate limit.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}
Retry-After
integer
>= 1

Minimum delay in seconds before retrying.

X-RateLimit-Limit
integer

Maximum requests in the current window.

X-RateLimit-Remaining
integer

Requests remaining in the current window.

X-RateLimit-Reset
integer

Unix time in milliseconds when the current window resets.

X-Request-Id
string

Request correlation identifier.

The cell-local application returned an invalid response.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

A required cell-local dependency is unavailable.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}