Time Tracking
Every task in ClientCove has a Time Spent field measured in hours. There's no separate timer or punch-in/punch-out flow β you log hours when the work is done (or as you go), and the system rolls them up by user, by client, and across the team.
How Time Tracking Works
The model is intentionally simple:
- Each task stores a single
task_time_spentvalue (in hours, decimal allowed) - A
task_date_completedfield stamps when the work was done - Manager-side reports aggregate across users by Client
You can log time:
- Inline from the task row (hover, type hours, blur to save)
- During bulk edit (one value applied to many tasks)
- Via the API (third-party timer integrations can update
time_spentdirectly)
There's deliberately no built-in start/stop timer β the workflow assumes you log hours after a session, the way most professional service tools (Harvest, Toggl, Clockify) integrate via API or expect manual entry.
Logging Time on a Task
Each task row has a time-tracking widget on the right side, between the task content and the actions menu:
When time is already logged
- Display:
π Apr 28π 1.5h - Click anywhere on the widget to edit
When no time is logged
- Display: empty by default
- Hover the row to reveal the editing UI
The editing UI
Two side-by-side controls:
-
Date display β defaults to today (or the existing
date_completed)- Click the calendar icon to open a native date picker
- Pick a date and the field auto-saves
- Useful for back-filling time spent on prior days
-
Time input β number field
- Step 0.25 (so you can enter 0.25, 0.5, 0.75, 1.0, 1.25β¦)
- Min 0
- Type the hours, blur (or press Enter) to save
- The value updates the Total Hours Logged stat in real time
Behavior
- Saving the time without explicitly marking the task complete is allowed β useful for in-progress logs
- Marking a task complete auto-stamps
date_completedto today (you can change it via the date picker) - Clearing the time field back to 0 is allowed; the time-tracking display becomes empty again
Editing the Date Completed
The date in the time widget represents when the work was done β not when the task was created or marked complete. This is what shows up in the Time by Client report and time exports.
To set a different completion date:
- Hover the task row
- Click the calendar icon in the time widget
- Pick the date
- Save
Use this to back-fill time entries you forgot to log on the day they happened.
Bulk Time Entry
If you logged a batch of similar tasks for one client and want to set the same time/date on all of them:
- Toggle Bulk Edit mode on
- Tick the tasks you want to update
- The bulk actions toolbar appears at the top
- (Bulk time setting is not exposed by default) β for batch time entry, edit each task inline, or use the API
The current bulk-edit toolbar covers Mark Complete, Set Due Date, Archive, Set Client, and Delete. Bulk time entry is on the API but not on the UI yet.
Quick Stats Sidebar
The right sidebar always shows your personal stats:
| Stat | Calculation |
|---|---|
| Tasks Due Today | Count of incomplete tasks with due_date = today |
| Incomplete Tasks | Count of all completed = false tasks |
| Total Hours Logged | Sum of time_spent across all your tasks (active + completed + archived) |
Total Hours updates in real time as you log time.
Time by Client (Managers)
If you have the Administrator, Editor, or Representative role, the sidebar gains an extra panel: Time by Client.
It shows one row per client with the total hours logged across all team members' tasks for that client:
Acme Corp β
34.5hGlobex β12.0hInitech β4.25h
Use this to see at a glance which clients are eating capacity and to drive per-client billing reports.
The panel only renders when there's at least one client-attributed task with logged time.
Sharing & Exporting Time
When the current filter shows tasks you want to deliver as a report (e.g. "Acme Corp, Completed, Last Month"):
- Click the Share Tasks button in the toolbar (only visible when there's at least one task in the filtered view)
- The share/export modal opens
- Pick the format and recipients
- Submit
The share modal can email a snapshot of the filtered tasks, or export to CSV/PDF for offline delivery β exact options depend on which export integrations your portal has enabled.
Tips & Conventions
Log time the same day you do it
The date defaults to today. Logging immediately after a work session means you don't have to remember the date later.
Use 0.25 increments
The input step is 15 minutes. Stick to multiples of 0.25 for clean rollups: 0.25, 0.5, 0.75, 1.0, 1.25, etc.
Always set a Client
Time on tasks without a client doesn't appear in Time by Client. If you want time-by-client reports to be useful, set the Client field on every task you log hours against β including tickets and project tasks (those typically inherit the client automatically; manual tasks need it set explicitly).
Tasks created from project cards already have time tracking
Project-card tasks carry over the card's metadata. Logging time against the personal task does not sync the time back to the project card β the card is for team visibility, your task is for your time log. If you need both visible to the team, also add a comment on the card with the time spent.
Recurring tasks reset time on each occurrence
When a recurring task auto-creates its next occurrence, the new task starts with time_spent = 0. The completed instance keeps its time entry for historical reporting.
Time entries are per-task, not per-session. If you want a granular session log (e.g. "9:00β10:30 on this task, 14:00β15:00 on that task"), pair ClientCove with a dedicated time-tracker (Harvest, Toggl) and have it write the rolled-up hours back to the task via the REST API.