Time Entries
The Time Entries category of the Lawmatics MCP server exposes 5 Lawmatics tools you can call directly from Claude, ChatGPT, or any MCP client through Weave Legal. Each Time Entries tool below is documented with its purpose and complete input and output schema, giving your firm governed, auditable access to Lawmatics time entries data.
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
Delete a time entry from Lawmatics by ID. This is irreversible.
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
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
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.