The time tracker captures the time you spend working. You can run a live timer, log entries by hand after the fact, or have entries created automatically by Pomodoro sessions. Each entry can be linked to one or more tasks (or none) and tagged. However many tasks an entry links to, it's still one entry of one duration — linking it to several tasks never multiplies your tracked time.
What you can do
Open the Time tracker page to start, stop, and resume the live timer and to browse your finished entries. The currently running entry sits at the top, and the rest are listed below with filters. You can also bulk-edit several entries at once on the bulk edit page, import entries from a file, and export your time data. For a date-ranged summary of where your time went, open Time tracker insights; for a pivot of time by name, tag, project, or task across a period, open Time tracker reports.
Fields you fill in
- Name — an optional label for the entry.
- Start time — when the work began.
- End time — when it ended (a running entry doesn't have one yet).
- Tasks — optional. When you edit an entry you can link it to several tasks — add each from the picker, remove one with the × on its chip. Starting or resuming the live timer attaches a single task to get going; open the entry afterwards to link more. Linking a task that has no start date yet sets its start date to when the tracked work began, so it appears on the calendar — see Tasks.
- Tags — optional.
Only one timer can run at a time.
The running timer
- Start — begins a new entry timed from now.
- Stop — ends the running entry and marks it finished.
- Resume — starts a fresh entry that copies the name and task from your most recent finished one. It's a new entry, not a continuation of the old one, but the running timer shows the accumulated total for that name today (earlier same-name entries plus the live segment), so a resumed session keeps counting up rather than restarting at zero. Hover the timer to see the current segment on its own.
- Reload anytime — the elapsed counter is worked out from the start time, so reloading the page or switching devices picks the timer back up exactly where it was, with no drift.
- Across tabs and devices — the timer stays in sync everywhere it's open; start it on your laptop and watch it tick on your phone. See Realtime updates.
Logging an entry by hand
Not every piece of work happens while a timer is running. The + button in the top bar opens New time entry from any page in the app, so you can record work after the fact without going to the time tracker first.
The dialog has the same fields as editing an existing entry: name, tasks, tags, start time, and end time. One rule differs — a manual entry needs an end time. It's a record of work that's already over, so there's nothing for a timer to finish later. If you want an open-ended entry, start the timer instead.
The dialog is linkable: the address bar carries ?modal=time-entry while it's open, so you can bookmark it or share it. The same address with an entry attached (?modal=time-entry&modalId=…) opens that entry for editing instead — that's what a chip on the insights timeline uses when you click it.
When entries overlap
Your time entries can't overlap each other — two entries claiming the same minute would make every total wrong. An entry that ends exactly when the next one starts is fine; only genuine overlap is rejected. A running timer counts as occupying everything from its start until now, so you can't hand-log work inside a session that's still going.
When a save would overlap, the dialog doesn't just refuse it. It opens a timeline of the affected days below the fields, with every entry on those days shown as a chip and the overlapping ones highlighted. From there you can:
- Drag a chip to move that entry, or drag either end to change when it starts or stops.
- Remove a chip to delete that entry.
- Restore to undo every change you've made to the other entries. Your own entry's fields are left exactly as you set them, so you can keep editing.
The entry you're saving appears on the timeline too, and moving it there updates the start and end fields as you drag — and vice versa. If you move it onto a different day, the timeline follows.
Nothing is saved until you save the dialog. When you do, all of it is applied together: the entries you moved, the ones you removed, and your own entry last. If one of those writes is rejected, the dialog stays open and tells you that part of the change was already saved, so you can see what's left in the timeline and try again.
The list
Each row shows the start time, end time, name, duration, linked tasks, and tags. The tasks column lists each linked task as a clickable chip (with a "+N" overflow when there are several), and marks entries that have no task as standalone. You can filter by date range, task, status, and tags — an entry linked to several tasks matches a filter for any of them. Entries are sorted by start time, newest first. Choose how many entries appear per page.
You can pin the page to either continuous or pomodoro mode with a toggle. Continuous mode shows your single running entry; pomodoro mode shows the active focus sequence and its step progress.
The dashboard chart
A bar chart on both the dashboard and the time-tracker page totals your finished time by date across the range you pick. It updates live as entries change, so it always reflects your latest work. On the time-tracker page, press G to show or hide the chart.
Bulk edit
When you select several entries, you can edit these fields together:
- name
- start time
- end time
- task
- tags
The end time must stay after the start time for every entry in your selection.
Import and export
- Import — bring entries in from a file; the columns map onto the entry fields. See Import CSV.
- Export — download your time data as CSV, XLS, or PDF. Pick which columns to include and a date range. Exports run in the background, and you can download finished ones from the export history.
Pomodoro integration
A pomodoro sequence creates time entries automatically — one per productive step, or more if you pause and resume within a step. These entries link back to the sequence. When you discard a sequence you can either delete those entries or keep them as standalone entries; see Pomodoro sessions.
Tips and edge cases
- Only one timer at a time. Starting a new timer while one is already running stops the existing one first.
- Resume makes a new entry. Resume isn't a continuation — it's a brand-new entry that copies the name and task. Your total "time on this task" is the sum of several entries.
- Linking many tasks never doubles your time. An entry counts once toward your totals no matter how many tasks it's on. The only place numbers can sum higher is a breakdown that groups by task or project (for example via the assistant's time aggregation), where an entry on two tasks adds its full duration to each — that's the breakdown answering "how much time touched each task", not splitting the total.
- Filters re-run on change. Changing a filter re-queries the list; live updates only refresh rows already in view.
- Tag-based reporting works. Use tags like
client-callordeep-workto slice the dashboard chart later.
Billing tracked time
Select entries on the list and the bulk toolbar offers Create invoice. The entries are grouped by their task — one invoice line per task, with the hours summed — because an invoice line bills a piece of work rather than a stopwatch reading.
Two things cannot be billed: an entry linked to no task, and a task whose projects have no client. Both are listed in the dialog with the reason rather than quietly left out.
An entry linked to several tasks contributes its full duration to each of them, matching how the per-task totals work everywhere else. The lines can therefore add up to more hours than you actually sat there, so check the per-row hours in the dialog before confirming.
Invoicing workflow has the full reference.
On mobile
The mobile app tracks time on its own tab, with a few native touches:
- Live Activity timer (iOS) — a running timer shows on the Lock Screen and in the Dynamic Island, with Stop / Resume controls, and keeps ticking while the app is backgrounded. Android shows the same as a foreground notification.
- Native pickers — editing an entry's start/end times uses the system date/time picker.
- Works offline — starting, stopping, and editing entries while offline are queued and sent on reconnect, with the running timer reflected locally; see Offline support.
- Reports are a native rework, not the web grid — see Time tracker reports.