A time entry is a work date plus a duration on one ticket. Workspace users log time on tickets that live in a project; SAQ has no timer, so every entry is typed in after the fact. Each entry is stamped with who logged it, the consultant category, and the ticket's billing client at that moment, which is what billing later reads.
Before you start
- You need to be a workspace user (Owner, Admin, or Member). Client users never log time, not even when they are elevated on a project. Agent accounts can log time through the API or MCP when their key has the write scope.
- The ticket must be in a project. Tickets still in the Inbox refuse time until they are routed.
- You always log time as yourself. There is no way to log time on someone else's behalf.
- The work date must be in an open period, and not before the workspace's first period start once that has been fixed.
Where to log time
| Place | How |
|---|---|
| Ticket page | In the Time group, select Log time. The ticket is preselected. |
| Time page | Select Log time, then use Find ticket and pick the ticket under Ticket. Only project tickets are listed. |
| Weekly grid | Type a duration straight into a cell. See Check your week in the grid. |
| Command palette | Press ⌘K / Ctrl+K and choose Log time. |
| API and MCP | POST /api/w/{slug}/time, or the log_time MCP tool. See Time entries. |
Fields
| Field | Meaning |
|---|---|
| Ticket | A ticket in a project. Inbox tickets are not offered. |
| Work date | The civil date the work was done. The hint under the field shows the time zone the date is read in. |
| Start time (optional) | A wall-clock time such as 09:30. It is a note about when the work started; it does not start a timer and there is no end time. |
| Duration | Required. 90 means 90 minutes, 45m means 45 minutes, 1h30 or 1h30m means 90 minutes, 1.5h (or 1,5h) means 90 minutes. Whole minutes only, at least 1. |
| Note (staff only) | Up to 10 000 characters. Notes are visible to workspace users only and never appear on a client timesheet. |
| Billable | On by default. Non-billable entries count in reports but are never priced. |
| Billing client | Shown to Owners and Admins on existing entries only. New entries take the ticket's billing client. |
What SAQ records with the entry
- Author: you. This never changes, not even on a correction.
- Consultant category: your category override on the project's member list if there is one, otherwise your default category from Settings → Consultant categories. It is a snapshot; changing a category later affects new entries only.
- Billing client: the ticket's billing client at the moment of logging. Changing the ticket's billing client later does not move existing entries; see re-attribution.
- Project and period: the ticket's project and the period the work date falls in.
- Time zone: your time zone from Account → Preferences, or the workspace default when you have none. The date you choose is stored as chosen; SAQ never converts it.
Rules and limits
- There is no timer. If you want the start time on the entry, type it.
- There is no upper limit per day or per week. The weekly target in Account → Preferences is advisory and only flags weeks below it before a period close.
- A duration cannot be negative. Reducing time in a closed period is done with a correction.
- Once a billing run has priced the entry it is frozen; see Edit or delete a time entry.
- Time entries and their changes are written to the ticket's timeline as staff-only events.
What clients see of time
| Reader | Sees |
|---|---|
| Workspace users | Every entry: minutes, notes, billable flag, and, for Owners and Admins, rates and amounts in reports and billing. |
| Client users (regular or elevated) | Billable minutes on the ticket and how many are "not yet billed". Never notes, non-billable time, categories, rates, or amounts. |
| Billing contacts | The client timesheet after a billing run: the billing description, hours, rate, and amount per priced entry. |
Examples
Log an hour and a half on ticket ACME-184 for yesterday, with a note:
- Open ACME-184 and select Log time in the Time group.
- Set Work date to yesterday, type
1h30under Duration, write the note, keep Billable on. - Select Save. The entry appears in the weekly grid and in the ticket's Logged figure.
The same entry through the API:
curl -X POST https://saq.no/api/w/acme/time \
-H "Authorization: Bearer saq_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ticketId": "01924c3e-6b2a-7d11-9d0e-3a1f4b5c6d7e",
"spentOn": "2026-09-18",
"startedAt": "09:30",
"minutes": 90,
"note": "Reviewed the import mapping with Kari",
"billable": true
}'
{ "id": "01924c3e-7f00-7a21-8c4e-1b2d3e4f5a6b" }
Common problems
"Route this ticket to a project before logging time." The ticket is in the Inbox or has no project. Route it from the Inbox or move it into a project, then log the time.
"The period is closed. Log forgotten work in an open period." The work date falls in a period an Owner or Admin has closed. Log the time on a date in the open period and mention the real date in the note, or ask an Owner or Admin for a correction.
"The date is before the first period. Log forgotten work today and put the real date in the note." The workspace's first period start was fixed at the first close, and nothing can be logged before it.
"Enter a non-zero duration, for example 1h30. Negative minutes require a correction." The duration was empty, zero, negative, or not in a supported format.
There is no Log time button. You are logged in as a client user, or the ticket has no project. Only workspace users log time.
The ticket is missing from the Ticket list on the Time page. The list shows project tickets you can see; Inbox tickets and archived tickets are not offered.