# List Events

`lawmatics_list-events` · Lawmatics MCP tool · Events

List events (appointments) from Lawmatics with optional pagination and sorting. Each row carries the schedule, reminder settings, cancellation state, and a `relationships` envelope of to-one {id,type} pointers (the matter/contact the appointment is with, event type, address, location); use get-event for full details including the hosting firm users. Canceled events are included; check canceledAt.

## Input

- **page** `integer` (> 0) — Page number (1-based)
- **sortBy** `string` (enum: "id", "created_at", "updated_at") — Column to sort by
- **sortOrder** `string` (enum: "asc", "desc") — Sort direction; ascending or descending

## Output

- **events** `array` (required) — Events (appointments) on this page of results
  - **[]** `object`
    - **id** `string` (required) — Lawmatics event (appointment) ID
    - **name** `string` (required) — Name/title of the event
    - **description** `string | null` (required) — Description of the event; null if unset
    - **timeZone** `string | null` (required) — IANA tz identifier the event is scheduled in (e.g. "America/Los_Angeles"); null if unset
    - **startDate** `string | null` (required) — When the event starts, as an ISO 8601 timestamp; null when the date has been cleared
    - **endDate** `string | null` (required) — When the event ends, as an ISO 8601 timestamp; null when the date has been cleared
    - **allDay** `boolean | null` (required) — True when the event is an all-day event; null when never explicitly set (treat as not all-day)
    - **reminderType** `string | null` (required) — Unit for the reminder delay ("minutes", "hours", "days", "weeks", "months"); null when no reminder is configured
    - **reminderDelayLength** `number | null` (required) — How many reminderType units before the event the reminder is sent; null when no reminder is configured
    - **reminderSent** `boolean` (required) — True when the reminder has already been sent
    - **location** `object | null` (required) — Firm location the event is held at; null when no location is set
      - **id** `number` (required) — Lawmatics event location ID
      - **name** `string` (required) — Name of the event location
      - **addressId** `number | null` (required) — ID of the address record for the location; null for virtual locations (e.g. a Zoom URL venue)
    - **sendInvites** `boolean | null` (required) — Whether calendar invites are sent to attendees; null if unset
    - **eventTypeId** `number` (required) — ID of the event type this event belongs to
    - **canceledAt** `string | null` (required) — When the appointment was canceled, as an ISO 8601 timestamp; null when not canceled. Canceled events remain in this list.
    - **createdAt** `string | null` (required) — When the event record was created, as an ISO 8601 timestamp; null when the API omits it on list rows
    - **updatedAt** `string | null` (required) — When the event record was last updated, as an ISO 8601 timestamp; null when the API omits it on list rows
    - **relationships** `object` (required) — To-one JSON:API relationship pointers as {id,type} stubs. Not materialized — follow a pointer by calling that resource's own tool. List rows carry to-one pointers only; use get-event for the full envelope incl. the to-many hosting users.
      - **eventable** `object | null` (required) — The matter/contact the appointment is with (type "prospect" for a matter, "contact"); null when the event is unattached
        - **id** `string` (required) — ID of the referenced Lawmatics record
        - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
      - **eventType** `object | null` (required) — Event type pointer; null when unset
        - **id** `string` (required) — ID of the referenced Lawmatics record
        - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
      - **address** `object | null` (required) — Linked address-record pointer; null when none is linked
        - **id** `string` (required) — ID of the referenced Lawmatics record
        - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
      - **location** `object | null` (required) — Firm location pointer; null when no location is set
        - **id** `string` (required) — ID of the referenced Lawmatics record
        - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
- **pagination** `object` (required) — Pagination metadata derived from the API `meta` envelope
  - **totalPages** `number` (required) — Total number of pages available
  - **limitPerPage** `number` (required) — Maximum events returned per page
  - **totalEntries** `number` (required) — Total number of events across all pages
