Skip to main content

Time logs

Route: /org/tasks?id=<task-id> → Time Logs tab Also reachable from: the Log Time button on a list row or a Kanban card


1. What a time log is​

A record that someone spent a duration on a task on a date, with a description and optionally attachments. Time logs are the raw material for three things: the task's Actual Hours, the person's timesheet, and any resource bill that includes the task.

Time logEstimated hoursRemaining hours
Created byLogging timeTyped at creationTyped by a person
Changes Actual HoursYes — it is the sourceNoNo
Feeds timesheetsYesNoNo
Feeds billingYesNoNo
Remaining Hours is not calculated from time logs

The modal suggests a new remaining figure — previous remaining minus what you just logged, floored at zero — but it is an editable field. Nothing keeps it consistent afterwards.

Actual Hours is derived and trustworthy. Remaining Hours is a human estimate.


2. How a time log spreads​


3. Logging time — step by step​

Figure 1 — The Log Time modal, pips: 1 date, 2 Hours, 3 Minutes, 4 Remaining Hours, 5 description, 6 attachments, 7 submit.

Step 1 · Open the modal​

Log Time is available from the detail panel, a list row, or a Kanban card. It is titled Log Time.

You cannot log time against a done task

Logging is blocked once the task's status is in the Done category — no permission overrides that.

Step 2 · Choose the date​

The date field appears only if the project allows backdating or future logging. When neither is allowed, there is no date control at all and the log is stamped today.

When backdating is allowed, the modal states the limit: "Backdating allowed up to N days", and the date picker's range is set accordingly.

Step 3 · Enter the duration​

Separate Hours and Minutes fields. They are combined into total minutes.

As you type, Remaining Hours recalculates to the previous remaining minus what you are logging, never below zero. You can overwrite it.

Step 4 · Describe the work​

The placeholder changes with the project's policy:

PolicyPlaceholder
Description optionalWhat did you work on?
Description requiredMinimum N characters required...

Step 5 · Attach​

Same mechanism as comments — files upload immediately and can be removed before submitting. Requires the task-attachment document category to exist.

Step 6 · Submit​


Figure 2 — The Time Logs tab. Every row is one logged entry.

4. Field reference​

The modal​

FieldControlRequiredNotes
DateDate—Hidden entirely unless backdating or future logging is enabled
HoursNumber✅With Minutes, must total more than zero
MinutesNumber✅
Remaining HoursNumber—Pre-calculated, editable
DescriptionTextareaDepends on project policyMinimum length is project policy
AttachmentsUpload—Needs the task-attachment category

Validation and its messages​

RuleMessage
Duration above zeroPlease enter a valid duration
Description lengthPlease provide a more detailed description (min N chars)
Backdating rejected by the serverBackdating is restricted by project policy
Future logging rejectedFuture logging is disabled for this project
Attachment category missingTask Attachment category not configured
Upload failedFailed to upload attachment
Governance is enforced twice, and the server has the final say

The modal hides or limits the date control from the project settings, and the server checks again on submit. The two specific error messages above are the server's rules surfacing — which is why they can appear even when the date picker allowed the value.

The Time Logs tab​

ColumnHolds
UserWho logged it
DateWhen the work happened
DurationHow long
DescriptionTruncated, full text in the tooltip
AttachmentsLinks

Empty: No time logs found.


5. The admin contract — project timesheet settings​

Everything about the date and description is governed per project, in Project → Timesheet Settings:

SettingEffect here
Allow backdated entryWhether the date field exists, and how far back
Backdate limit (days)The lower bound, and the notice text
Allow future loggingWhether the date field exists, and the upper bound
Require descriptionMakes description mandatory
Description minimum lengthThe threshold and the message

Plus the task-attachment document category, for attachments.


6. Downstream​

ConsumerUses
Task Actual HoursThe sum of durations
Progress %Actual ÷ Estimated
My TimesheetsThe logs, laid out per day
Timesheet approvalsWhat a manager approves
Resource BillsBillable logs become billable hours
Timesheet AnalyticsUtilisation
A non-billable task's logged time never reaches a bill

Billing follows the task's is_billable flag, which is inherited from its category at creation. Time logged against a non-billable task is real, appears on the timesheet, and is simply not billable.

Fixing it after the fact means changing the task's flag — and then re-generating the bill.


7. Don't confuse this with…​

ThingWhereWhy it is different
Time log (this page)Per taskOne entry, one duration
TimesheetMy TimesheetsThe same logs, arranged by day and submitted for approval
Actual HoursThe detail panelThe sum of logs
Remaining HoursThe detail panelA typed estimate, not a calculation
Estimated HoursThe detail panelSet at creation

8. Troubleshooting​

SymptomCause
No Log Time buttonThe task is in a Done status
No date field in the modalThe project allows neither backdating nor future logging
Backdating is restricted by project policyBeyond the backdate limit
Future logging is disabled for this projectThe date is after today and future logging is off
A description is refusedIt is under the project's minimum length
Attachments failThe task-attachment category is missing
Actual Hours did not moveThe log failed — check for an error toast
Remaining Hours looks wrongIt is editable and not recalculated after the fact
Logged time is missing from a billThe task is not billable