Read one known event type, including an inactive one.
Action: app_topolo_calendar.event_types.get · GET /api/admin/event-types/{eventTypeId}
Declared permission: app_topolo_calendar.event_types:read. For authorized Calendar users; permissions and resource access still apply.
Before you start
- Use the current credential to confirm the production organization and inspect this exact action before preparing a call.
- Declared permission: app_topolo_calendar.event_types:read. Permission discovery is not a grant.
- Discover the authorized Calendar workspace and pass it as resourceType=workspace/resourceId separately from this action input. Calendar records and IDs are scoped to the selected host/workspace.
Inputs and field meanings
| Field | Presence | Declared constraint | Meaning |
|---|---|---|---|
eventTypeId | required | string | Type ID discovered with event_types.list/get. Creation uses either this or eventTypeSlug, never both. |
Worked request and response
Source-reviewed illustration only. Nothing below was executed; all identifiers, counts, states, credentials and URLs are synthetic. Replace identifiers through discovery before any separately authorized call.
Resource context: workspace; it is not an extra action input field.
Illustrative action input:
{
"eventTypeId": "evt_example"
}
Illustrative HTTP 200 source response:
{
"eventType": {
"id": "evt_example",
"hostId": "hst_example",
"slug": "intro-call",
"name": "Intro call",
"description": null,
"durationMinutes": 30,
"bufferBeforeMinutes": 0,
"bufferAfterMinutes": 10,
"minNoticeMinutes": 120,
"maxAdvanceDays": 60,
"slotIncrementMinutes": 15,
"locationKind": "phone",
"locationDetail": "Use the agreed phone number.",
"displayOrder": 0,
"isActive": true,
"approvalRequired": false
}
}
eventType includes active/approval flags, location and scheduling constraints. Inspect isActive and approvalRequired before sharing the booking link or creating a booking.
This source-shaped illustrative response does not validate against the declared output schema: overlapping oneOf branches accept the same object. Preserve the schema and report the contract issue; do not claim this is runtime failure evidence.
Effects and verification
- Reads a type only when it belongs to the current host.
- Compare id/hostId and all constraints; do not infer visibility from presence alone.
Refusals and recovery
Selected source refusals are listed below; runtime middleware can return additional structured errors.
| HTTP | Error | Supported response |
|---|---|---|
| 403 | forbidden | Reconcile the declared permission, organization and verified resource grant with the legitimate access owner; do not switch context to bypass a refusal. |
| 404 | no_host | Read host.get; if it returns host:null, create the intended workspace host through host.update before retrying. |
| 404 | not_found | List records in the selected workspace and discover the identifier again. Do not probe another workspace by guessing IDs. |
Recovery: This read does not mutate Calendar records. Correct the selected context or request fields before another authorized read.
Related actions
app_topolo_calendar.event_types.list: Discover active event types and their IDs.app_topolo_calendar.event_types.update: Update a known event type without losing its identity.app_topolo_calendar.bookings.create: Create a booking after discovering its event type and confirming the invitee/time.
Declared schemas and provenance
The hidden action guide carries these exact current declared schemas. They are not rewritten to make the illustrations pass.
Input schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"eventTypeId": {
"type": "string",
"minLength": 1
}
},
"required": [
"eventTypeId"
],
"additionalProperties": false
}
Output schema:
{
"title": "Get event type response",
"description": "Resource response returned by event_types.get. The service may return the resource directly or in an envelope.",
"oneOf": [
{
"type": "object",
"title": "event record",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier when the event exposes one."
}
},
"additionalProperties": true
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"title": "event record",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier when the event exposes one."
}
},
"additionalProperties": true
},
"event": {
"type": "object",
"title": "event record",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier when the event exposes one."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
],
"x-topolo-contract-source": "derived-action-metadata",
"x-topolo-contract-precision": "structural"
}
Source: TopoloCalendar@b378ceb73800ee1d1e6c4ff6f0b4179918cf632c, apps/api/src/routes/admin-event-types.ts. Current catalog metadata and source were compared without executing the application.
- Source-reviewed synthetic input/response; not captured or executed.
- Source revision is not proof of current deployment, caller access, provider connection or notification delivery.
- This source-shaped illustrative response does not validate against the declared output schema: overlapping oneOf branches accept the same object. Preserve the schema and report the contract issue; do not claim this is runtime failure evidence.