Skip to content
Registry StackDocsv0.34.0

Read one owned appointment

GET
/v1/appointments/{appointment_id}
curl --request GET \
--url https://scheduling.example.test/v1/appointments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Answers only to the caller that owns the booking. Another caller’s appointment, a hold, and an unknown identifier are all operation.not-authorized, so existence is never disclosed.

appointment_id
required
string format: uuid

The appointment’s identifier.

traceparent
string

Optional W3C trace context continued in the response.

Success

Media typeapplication/json
object
appointmentId
required
string
cancelledAt
Any of:
string format: date-time
channel
Any of:
string
createdAt
required
string format: date-time
end
required
string format: date-time
offering
required
string
policyRevision
required
integer format: int64
resource
Any of:
string
revision
required
integer format: int64
start
required
string format: date-time
state
required
string
Allowed values: confirmed cancelled
units
required
integer
key
additional properties
any
Example
{
"state": "confirmed"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.invalid

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.invalid
detail
required
Allowed value: The request could not be read as a Scheduling request.
status
required
Allowed value: 400
title
required
Allowed value: Request invalid
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/invalid
Example
{
"code": "request.invalid",
"detail": "The request could not be read as a Scheduling request.",
"status": 400,
"title": "Request invalid",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/invalid"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: authentication.refused

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: authentication.refused
detail
required
Allowed value: The bearer credential is missing, invalid, or expired. Sign in again.
status
required
Allowed value: 401
title
required
Allowed value: Authentication refused
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/authentication/refused
Example
{
"code": "authentication.refused",
"detail": "The bearer credential is missing, invalid, or expired. Sign in again.",
"status": 401,
"title": "Authentication refused",
"type": "https://id.registrystack.org/problems/registry-scheduling/authentication/refused"
}
WWW-Authenticate
Allowed value: Bearer

Bearer authentication challenge.

cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: profile.not-authorized, operation.not-authorized

Media typeapplication/problem+json
One of:
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: profile.not-authorized
detail
required
Allowed value: The selected Scheduling profile does not authorize this request.
status
required
Allowed value: 403
title
required
Allowed value: Profile not authorized
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/profile/not-authorized
Example
{
"code": "profile.not-authorized",
"detail": "The selected Scheduling profile does not authorize this request.",
"status": 403,
"title": "Profile not authorized",
"type": "https://id.registrystack.org/problems/registry-scheduling/profile/not-authorized"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.method-not-allowed

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.method-not-allowed
detail
required
Allowed value: The route exists but not for this method.
status
required
Allowed value: 405
title
required
Allowed value: Method not allowed
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/method-not-allowed
Example
{
"code": "request.method-not-allowed",
"detail": "The route exists but not for this method.",
"status": 405,
"title": "Method not allowed",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/method-not-allowed"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.body-too-large

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.body-too-large
detail
required
Allowed value: The request body exceeds the accepted size.
status
required
Allowed value: 413
title
required
Allowed value: Payload too large
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/body-too-large
Example
{
"code": "request.body-too-large",
"detail": "The request body exceeds the accepted size.",
"status": 413,
"title": "Payload too large",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/body-too-large"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: service.unavailable

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: service.unavailable
detail
required
Allowed value: Scheduling storage is unavailable. Try again after the service recovers.
status
required
Allowed value: 503
title
required
Allowed value: Scheduling service unavailable
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/service/unavailable
Example
{
"code": "service.unavailable",
"detail": "Scheduling storage is unavailable. Try again after the service recovers.",
"status": 503,
"title": "Scheduling service unavailable",
"type": "https://id.registrystack.org/problems/registry-scheduling/service/unavailable"
}
Retry-After
integer

Seconds before retrying the unavailable dependency; the runtime answers 5.

cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.