Documentation

Calendar Event Confirmations

Reference for the calendar_event_confirmations resource. Requests follow the conventions in Requests and Responses; fields you receive and may write are filtered by your user's permissions, so responses can contain a subset of the fields below.

Operations

Operation Request
List GET /{profile}/user/v4/calendar_event_confirmations
Record a confirmation on an appointment POST /{profile}/user/v4/calendar_event_confirmations/confirm

Not available as a standard REST operation for this resource: create, update, delete — such requests return 402 feature_not_enabled or 403 permission_denied (see the actions above for this resource's write path).

How it works

calendar_event_confirmations record that an appointment was confirmed — each row pins a confirmation_status_id (Not Confirmed / Accepted / Cancelled) and a confirmation_type_id (Phone / Email / Direct) to an appointment, with optional notes. Confirmations are append-only: recording a confirmation writes a new row, and the most recent one is the appointment's current confirmation state. There is no update or delete.

Confirmations follow the appointment's permissions. Recording one is a modify on the appointment: tech appointments require the Scheduler permission at the customer's location; sales appointments require the Sale Scheduler (or Assign Sale Schedule To Self) permission.

The composite key (id, calendar_category) means confirmations aren't addressed at /{id}; recording one goes through the confirm collection action.

Recording a confirmation

curl -X POST "https://portal.securitytrax.com/acme/user/v4/calendar_event_confirmations/confirm" \
  -H "Authorization: Bearer stx_acme_..." \
  -H "Content-Type: application/json" \
  -d '{"data":{"attributes":{"calendar_event_id":314,"confirmation_status_id":2,"confirmation_type_id":1,"notes":"Customer confirmed by phone"}}}'
Field Required Notes
calendar_event_id Yes The appointment being confirmed (tech or sales); its category is resolved automatically.
confirmation_status_id Yes A confirmation status id (e.g. Accepted).
confirmation_type_id Yes A confirmation type id (e.g. Phone).
notes No Free-text confirmation notes.

Recording a confirmation logs a "Set Confirmation Status …" activity on the appointment, exactly as the SecurityTrax scheduler does.

Listing confirmations

Filters: calendar_event_id (the appointment — the usual lens), calendar_category (tech_schedule / sale_schedule), confirmation_status_id. Sort by id, calendar_event_id, or created_at (default created_at, newest first); ?count_only=true for the total.

# The confirmation history for one appointment
curl "https://portal.securitytrax.com/acme/user/v4/calendar_event_confirmations?calendar_event_id=314&sort=-created_at" \
  -H "Authorization: Bearer stx_acme_..."

Fields

Fields are grouped by the permission that gates them. A group you may not view is absent from responses; a group you may not write is rejected with 422 when sent in a write.

Tech Confirmation

View: customers — the standard canViewTechSchedule rules; leads — Lead Scheduler. Create: the standard canConfirmTechAppointment rules.

Field Type Writable Validation
calendar_category string (nullable) Create only one of: tech_schedule, sale_schedule
calendar_event_id integer (nullable) Create only min 0
confirmation_status_id integer (nullable) Create only min 0
confirmation_type_id integer (nullable) Create only min 0
notes string (nullable) Create only max length 255
status string (nullable) Read-only one of: active, deleted
created_at string (nullable) Read-only
created_by integer (nullable) Read-only
updated_at string (nullable) Read-only
updated_by integer (nullable) Read-only

Sales Confirmation

View: any of: Sale Scheduler; Assign Sale Schedule To Self. Create: any of: Sale Scheduler; Assign Sale Schedule To Self.

Field Type Writable Validation
calendar_category string (nullable) Create only one of: tech_schedule, sale_schedule
calendar_event_id integer (nullable) Create only min 0
confirmation_status_id integer (nullable) Create only min 0
confirmation_type_id integer (nullable) Create only min 0
notes string (nullable) Create only max length 255
status string (nullable) Read-only one of: active, deleted
created_at string (nullable) Read-only
created_by integer (nullable) Read-only
updated_at string (nullable) Read-only
updated_by integer (nullable) Read-only

Pagination

The list endpoint uses client-controlled offset pagination: ?page= (1-based) and ?per_page= (default 25, max 100). The response mirrors meta.pagination (page, per_page, total, last_page) and sends an RFC5988 Link header; follow rel="next" to walk pages. See Pagination.

Filters

The list endpoint accepts these query-param filters: calendar_event_id, calendar_category, confirmation_status_id. An unsupported filter parameter returns 422. See Filtering collections for matching semantics.

Sorting

GET .../calendar_event_confirmations?sort= orders the list by: id, calendar_event_id, created_at. Prefix a field with - for descending; comma-separate for tie-breakers. An unsupported field returns 422. See Sorting collections.

Related

Ask about the docs
Ask about the docs
Answers from the SecurityTrax documentation

Ask about a feature, setting, or workflow.

Answers come from the documentation. Double-check anything important. AI features are subject to the AI Terms.