# Create Event

`lawmatics_create-event` · Lawmatics MCP tool · Events

Create an event (appointment) in Lawmatics. Provide the name, start/end times, the hosting firm user IDs, the event type, and the ID of exactly one entity (matter or contact — companies cannot have appointments) the appointment is with. Optionally set a description, location, reminder, time zone, and invite behavior.

## Input

- **name** `string` (required) — Name/title of the event (appointment)
- **description** `string` — Description of the event
- **startDate** `string(date-time)` (required, pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z||([+-](?:[01]\d|2[0-3]):[0-5]\d)))$) — When the event starts, as an ISO 8601 timestamp
- **endDate** `string(date-time)` (required, pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z||([+-](?:[01]\d|2[0-3]):[0-5]\d)))$) — When the event ends, as an ISO 8601 timestamp
- **userIds** `array` (required, min items: 1) — IDs of the firm users hosting the appointment; numeric strings
  - **[]** `string` (pattern: ^\d+$)
- **matterId** `string` — ID of the matter the appointment is with
- **contactId** `string` — ID of the contact the appointment is with
- **eventTypeId** `string` (required, pattern: ^\d+$) — ID of the event type for this event; a numeric string
- **locationId** `string` (pattern: ^\d+$) — ID of the firm location the event is held at; a numeric string
- **allDay** `boolean` — Whether the event is an all-day event (default false)
- **reminderDelayLength** `integer` (> 0) — How many reminderType units before the event to send a reminder; provide together with reminderType
- **reminderType** `string` (enum: "minutes", "hours", "days", "weeks", "months") — Unit for the reminder delay; provide together with reminderDelayLength
- **sendInvites** `boolean` — Whether to send calendar invites to attendees (default true)
- **noShow** `boolean` — Whether the appointment is marked as a no-show (default false)
- **timeZone** `string` — IANA tz identifier to schedule the event in (e.g. "America/Los_Angeles")

## Output

- **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; always null on a fresh create
- **createdAt** `string | null` (required) — When the event record was created, as an ISO 8601 timestamp; null when the API omits it on the create echo
- **updatedAt** `string | null` (required) — When the event record was last updated, as an ISO 8601 timestamp; null when the API omits it on the create echo
- **relationships** `object` (required) — JSON:API relationship pointers to related records as {id,type} stubs. Not materialized — follow a pointer by calling that resource's own get/find tool (e.g. type 'prospect' -> get-matter, type 'contact' -> get-contact, type 'user' -> get-user).
  - **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
  - **users** `array` (required) — Hosting/attending firm-user pointers; empty array if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
