Topolo Docs Topolo Platform
Open workspace

Get event type — Calendar

Read one known event type, including an inactive one.

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

FieldPresenceDeclared constraintMeaning
eventTypeIdrequiredstringType 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.
  1. 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.

HTTPErrorSupported response
403forbiddenReconcile the declared permission, organization and verified resource grant with the legitimate access owner; do not switch context to bypass a refusal.
404no_hostRead host.get; if it returns host:null, create the intended workspace host through host.update before retrying.
404not_foundList 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.

  • 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.