Appointments API Reference

Query calendar syncs, booked appointments, hosts, setters, meeting URLs, and outcome log states.

List Appointments

Retrieve a paginated list of appointments. Results can be filtered by call category, outcome, lead, and assigned setter, closer, or triager.

GET/api/external/appointments

Query Parameters

ParameterTypeRequiredDescription
pageintegerOptionalPage number for pagination. Default: 1
limitintegerOptionalNumber of items per page. Default: 10, Max: 100
call_categorystringOptionalFilter by category (e.g. SALES_CALL, COACHING_CALL, TRIAGE_CALL).
outcome_rolestringOptionalFilter by outcome role (e.g. NEW_LEAD, APPOINTMENT_BOOKED, NO_SHOW, RESCHEDULED, CANCELED, PARTIAL_PAYMENT, WON, UNQUALIFIED, FOLLOW_UP, LOST).
setterstringOptionalFilter by assigned setter email.
closerstringOptionalFilter by assigned closer email.
triagestringOptionalFilter by assigned triager email.
lead_idstring (UUID)OptionalFilter by associated lead UUID.

Code Examples

curl -X GET "https://api.hermon.io/api/external/appointments?page=1&limit=10&call_category=COACHING_CALL&outcome_role=APPOINTMENT_BOOKED&setter=sales-setter@mailinator.com&closer=hermon@mailinator.com&triage=triager@mailinator.com&lead_id=e799c30f-9da7-4fd7-9552-83b96a9bfac2" \
  -H "Content-Type: application/json" \
  -H "x-api-key: sk_live_your_key_here"

Response Example

json
{
  "status": "success",
  "message": "Appointments fetched successfully",
  "data": [
    {
      "id": "c76340d1-72a8-403e-b920-d6a2b526926c",
      "lead": {
        "id": "e799c30f-9da7-4fd7-9552-83b96a9bfac2",
        "first_name": "Chris",
        "last_name": null,
        "email": "cpulf1@gmail.com",
        "phone_e164": "+61492817298",
        "phone_country": "AU",
        "next_touch_point_at": null,
        "next_touch_point_type": null
      },
      "schedule_time": "2026-05-23T11:00:00.000Z",
      "host": null,
      "setter": null,
      "triager": null,
      "meeting_url": null,
      "appointment_type": "Millionaire Commerce - Qualification Call - PS",
      "call_category": "SALES_CALL",
      "appointment_event_type": {
        "id": "a7a2117c-7e2b-4d9d-b18a-0ea24afe3371",
        "provider": "CALENDLY",
        "owner_name": "M.C. Elite - Succes Team"
      },
      "outcome": {
        "id": "bac5eb24-e69f-410e-ad94-0185decad74a",
        "name": "Canceled",
        "role": "CANCELED",
        "description": "Lead cancelled, no reschedule",
        "text_color": "#E11D48",
        "bg_color": "#FFF1F2"
      },
      "notes": "Canceled via Calendly",
      "recording_url": null,
      "no_show": false,
      "source": "CALENDLY",
      "external_reference": "https://api.calendly.com/scheduled_events/8970bc3c-91c1-476d-8dbb-f3ae825b2537/invitees/f37e53c6-f293-4e5f-82c9-565e2ccd20a6",
      "fathom": null,
      "created_at": "2026-05-22T11:32:04.386Z",
      "updated_at": "2026-05-23T10:31:16.573Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Get Appointment Details

Fetch detailed information for a single appointment by its unique UUID.

GET/api/external/appointments/:id

Path Parameters

:idRequired. The unique appointment UUID.

Appointment Object Fields

FieldTypeDescription
idstring (UUID)Unique identifier for the appointment.
leadobjectAssociated lead summary details (id, first_name, last_name, email, phone_e164, phone_country, next_touch_point_at, next_touch_point_type).
schedule_timestringISO 8601 timestamp when the appointment is scheduled.
hoststring | nullEmail of the assigned host/assignee.
setterstring | nullEmail of the assigned setter.
triagerstring | nullEmail of the assigned triager.
meeting_urlstring | nullVideo conference join link.
appointment_typestringType/name of the scheduled appointment.
call_categorystringBilling or call category (e.g. SALES_CALL, COACHING_CALL).
appointment_event_typeobjectMetadata for scheduling event (id, provider, owner_name).
outcomeobjectCurrent outcome details (id, name, role, description, text_color, bg_color).
notesstring | nullText notes associated with the booking.
recording_urlstring | nullVideo call recording link.
no_showbooleanWhether the contact failed to show up.
sourcestringScheduling origin provider (e.g. CALENDLY, MANUAL).
external_referencestring | nullUnique external provider reference link.
fathomobject | nullFathom call recording integration details.
created_atstringISO 8601 timestamp of creation.
updated_atstringISO 8601 timestamp of last modification.
opt_insarrayOpt-in records generated from this booking [Details API Only].

Code Examples

curl -X GET "https://api.hermon.io/api/external/appointments/c76340d1-72a8-403e-b920-d6a2b526926c" \
  -H "Content-Type: application/json" \
  -H "x-api-key: sk_live_your_key_here"

Response Example

json
{
  "status": "success",
  "message": "Appointment fetched successfully",
  "data": {
    "id": "c76340d1-72a8-403e-b920-d6a2b526926c",
    "lead": {
      "id": "e799c30f-9da7-4fd7-9552-83b96a9bfac2",
      "first_name": "Chris",
      "last_name": null,
      "email": "cpulf1@gmail.com",
      "phone_e164": "+61492817298",
      "phone_country": "AU",
      "next_touch_point_at": null,
      "next_touch_point_type": null
    },
    "schedule_time": "2026-05-23T11:00:00.000Z",
    "host": null,
    "setter": null,
    "triager": null,
    "meeting_url": null,
    "appointment_type": "Millionaire Commerce - Qualification Call - PS",
    "call_category": "SALES_CALL",
    "appointment_event_type": {
      "id": "a7a2117c-7e2b-4d9d-b18a-0ea24afe3371",
      "provider": "CALENDLY",
      "owner_name": "M.C. Elite - Succes Team"
    },
    "outcome": {
      "id": "bac5eb24-e69f-410e-ad94-0185decad74a",
      "name": "Canceled",
      "role": "CANCELED",
      "description": "Lead cancelled, no reschedule",
      "text_color": "#E11D48",
      "bg_color": "#FFF1F2"
    },
    "notes": "Canceled via Calendly",
    "recording_url": null,
    "no_show": false,
    "source": "CALENDLY",
    "external_reference": "https://api.calendly.com/scheduled_events/8970bc3c-91c1-476d-8dbb-f3ae825b2537/invitees/f37e53c6-f293-4e5f-82c9-565e2ccd20a6",
    "fathom": null,
    "created_at": "2026-05-22T11:32:04.386Z",
    "updated_at": "2026-05-23T10:31:16.573Z",
    "opt_ins": [
      {
        "id": "ec610936-9757-4199-b85c-ae0031206108",
        "lead_id": "e799c30f-9da7-4fd7-9552-83b96a9bfac2",
        "source": "CALENDLY",
        "provider_form_id": null,
        "provider_form_name": "Millionaire Commerce - Qualification Call - PS",
        "external_reference": "https://api.calendly.com/scheduled_events/8970bc3c-91c1-476d-8dbb-f3ae825b2537/invitees/f37e53c6-f293-4e5f-82c9-565e2ccd20a6",
        "created_at": "2026-05-22T11:32:04.443Z"
      }
    ]
  }
}

Error Responses

401Missing or invalid API key
json
{
  "status": "error",
  "message": "Invalid or revoked API key"
}
404Resource not found
json
{
  "status": "error",
  "message": "Resource not found"
}
429Rate limit exceeded
json
{
  "status": "error",
  "message": "Too many requests"
}