TrainingEvent

A request or response body; the type column links to the schemas it refers to.

TrainingEvent

FieldTypeRequiredDescription
idstring (uuid)yes—
owner_organization_idstring (uuid)yes—
owner_department_idstring (uuid) | nullyes

Owning department within the organization; null = owned by the organization directly. Scopes which events:read/events:write grants cover the event.

titlestringyes—
description_markdownstring | nullyes—
starts_atstring (date-time) | nullyes

When the event starts; null while the time is not yet known (then ends_at is null too).

ends_atstring (date-time) | nullyes

When the event ends; null while the time is not yet known.

meeting_urlstring | nullyes—
locationstring | nullyes—
credit_hoursnumber | nullyes

Hours an attendance is worth; null = the event's wall-clock duration is credited.

created_bystring | nullyes—
cancelled_atstring (date-time) | nullyes

Set when the event was cancelled; final. A cancelled event takes no attendance.

created_atstring (date-time)yes—
archived_atstring (date-time) | nullyes

An archived event is hidden from listings; its roster stays on record.

jsonExample
{
  "id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "owner_organization_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "owner_department_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "title": "string",
  "description_markdown": "string",
  "starts_at": "2026-01-01T00:00:00.000Z",
  "ends_at": "2026-01-01T00:00:00.000Z",
  "meeting_url": "string",
  "location": "string",
  "credit_hours": 0,
  "created_by": "string",
  "cancelled_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z",
  "archived_at": "2026-01-01T00:00:00.000Z"
}