# Time Entries

Lawmatics MCP server · 5 tools

## Tools

- [Create Time Entry](/integrations/lawmatics/time-entries/create-time-entry/) — Create a time entry in Lawmatics and associate it with a matter or contact. Requires userId and createdById (Lawmatics user IDs — see get-current-user or list-users). Duration is in hours (e.g. 1.5 = 1 hour 30 minutes); the hourly rate is in integer cents (e.g. 12000 = $120.00/hr). Only completed entries (with completedAt set) can be added to invoices. Returns the created entry including a `relationships` envelope of {id,type} pointers to related records (the matter or contact the time is billed to, the staff and creating users, the billing activity type, and the invoice). WARNING: contact-targeted creates can return a server error AFTER the entry was saved — on an upstream error, list time entries sorted by created_at descending to check for the new entry before retrying, or you may create a duplicate.

- [Delete Time Entry](/integrations/lawmatics/time-entries/delete-time-entry/) — Delete a time entry from Lawmatics by ID. This is irreversible.

- [Get Time Entry](/integrations/lawmatics/time-entries/get-time-entry/) — Fetch a single time entry from Lawmatics by ID. Returns the duration (in hours), billing details (hourly rate in integer cents), timestamps, and a `relationships` envelope of {id,type} pointers to related records (the matter or contact the time is billed to, the staff and creating users, the billing activity type, and the invoice).

- [List Time Entries](/integrations/lawmatics/time-entries/list-time-entries/) — List time entries from Lawmatics with optional pagination and sorting. Time entries record time spent on a matter or contact; durations are in hours and hourly rates are in integer cents. Each row carries a `relationships` envelope of to-one {id,type} pointers (the matter or contact billed to, staff and creating users, activity type, invoice).

- [Update Time Entry](/integrations/lawmatics/time-entries/update-time-entry/) — Update a time entry in Lawmatics by ID. The API requires exactly one of matterId or contactId on EVERY update — to keep the current association, fetch the entry with get-time-entry and pass its relationships.contactable.id as matterId when that pointer's type is "prospect" or as contactId when it is "contact". Other omitted fields keep their stored values; duration is in hours and the hourly rate is in integer cents. Returns the updated entry including a `relationships` envelope of {id,type} pointers to related records (the matter or contact the time is billed to, the staff and creating users, the billing activity type, and the invoice). WARNING: contact-targeted updates can return a server error AFTER the change was saved — on an upstream error, re-fetch the entry to check before retrying.
