Skip to content

List appointments in a bounded interval

GET
/appointments
curl --request GET \
--url 'https://api.de.teamgrid.app/v1/appointments?limit=50&archived=false&start=2026-04-15T12%3A00%3A00Z&end=2026-04-15T12%3A00%3A00Z' \
--header 'Authorization: Bearer <token>'

Lists native and provider-managed appointment metadata. Private foreign appointments are redacted; provider identifiers, participants, recurrence payloads, and tokens are never returned.

cursor
string
<= 1024 characters

Opaque cursor returned in meta.page.nextCursor.

limit
integer
default: 50 >= 1 <= 200
archived
boolean

Return archived resources instead of active resources.

start
required
string format: date-time

Inclusive beginning of the bounded calendar interval.

end
required
string format: date-time

Exclusive end of the bounded calendar interval.

userId
Array<string>
<= 50 items unique items

One or more user ids. Foreign users additionally require a delegated scope and product sharing permission.

A stable cursor page.

Media typeapplication/json
object
data
required
Array<object>
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
page
required
object
limit
required
integer
>= 1 <= 200
nextCursor
required
string | null
requestId
required
string
Example
{
"data": [
{
"attributes": {
"managedBy": "provider",
"visibility": "default"
},
"type": "appointment"
}
]
}

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 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"
}
}