How to Track Billable Hours as a Freelancer

Undercharging is not always about the rate. Often it is about the hours that were worked and never written down. Here's how to fix that, from the simplest methods to the most reliable.

Why billable hours disappear

Freelance billing should be simple: track your hours, invoice for what you worked. But in practice, the hours don't track themselves. You spend 45 minutes on a client call, 20 minutes reviewing a document, another half hour answering emails — and at the end of the week, none of it made it into a time log.

Work that is never recorded is never billed, and the small pieces are the ones that go missing. A fifteen-minute fix here, an unplanned call there — individually forgettable, which is the problem.

The root cause isn't laziness — it's friction. Every system that requires you to "remember to start a timer" or "log your hours at end of day" will fail eventually, because memory is unreliable and context-switching is hard. The fix has to reduce friction, not add more of it.

Method 1: Manual time logs (and why they fail)

The oldest approach: keep a spreadsheet or notebook and write down hours as you work. Simple in theory. In practice, people forget to record anything until end of day, then try to reconstruct what they did from memory. The result is rounded estimates, not accurate records.

Manual logs also tend to miss small tasks — the 10-minute fix, the quick question, the brief review. Those small tasks add up to real time over a week, but they feel too minor to bother recording. So they don't get recorded, and they don't get billed.

Manual logging works fine if you're billing in large blocks (half-day or full-day chunks). For anyone billing in smaller increments, or working across multiple clients in a day, manual tracking introduces too much estimation error.

Method 2: Timer apps (and their real problem)

Dedicated time trackers like Toggl, Harvest, or Clockify are built exactly for this. You start a timer when you begin a task, stop it when you finish. The data is precise and exportable.

The problem isn't the tool — it's the habit. You have to remember to start the timer before you begin, and stop it when you finish. Miss either step and the entry is wrong. It is easy to forget to start the timer, or to leave it running through lunch and a client call.

Timer apps work well for people who can build a consistent habit around them. For everyone else, they generate a mix of accurate entries and gaps, which requires manual cleanup anyway. The overhead adds up, particularly if you're already using a task manager and now running a parallel system.

Method 3: Task-based time tracking (the better approach)

If you already use a task manager to plan your work — like Todoist — you can tie time tracking directly to task completion instead of running separate timers. The idea: when you complete a task, that completion event becomes your time record. You add the duration, and you're done.

This approach works because it fits an existing habit. You were already completing tasks. All you add is a duration. You're not managing a parallel system — you're enriching the one you already use.

This is exactly how Tidst works. Connect Tidst to your Todoist account, and completed tasks from your client projects can appear in The Queue. Add the time for each task, approve it, and the entry is logged. The whole review takes a few minutes, and far less depends on what you happen to remember.

Billable hours aren't only tasks, though. Connect Google Calendar or Outlook too, and your past meetings and calls land in the same Queue — captured just as automatically as your Todoist tasks, with the same review-and-approve step.

How to set up reliable billable hour tracking with Tidst

  1. Connect Tidst to Todoist. Authorize via OAuth — no API keys, no setup complexity. Takes under a minute.
  2. Select the projects you want to track. Enable your client projects; leave personal tasks out. Tidst only captures completions from the projects you've enabled.
  3. Set hourly rates per project. Different clients at different rates. Tidst calculates the revenue value of your time automatically.
  4. Use time labels for speed. Add labels like @30min or @60min to tasks in Todoist before you complete them. When those tasks land in The Queue, the duration is pre-filled. You just approve the entry.
  5. Review The Queue daily or weekly. It takes two minutes. Completed tasks from your enabled projects are waiting, so the review starts from something rather than nothing.
  6. Connect Google Calendar or Outlook too (optional). Meetings and calls from your calendar land in the same Queue as your Todoist tasks, ready to log the same way.
  7. Export reports for invoicing. Pull a PDF or CSV report per project per period, and use that as the basis for your invoice.

What about tasks completed on mobile?

One limitation of browser-based timer tools is that they only work when you're at your computer. If you complete tasks on your phone, iPad, or Apple Watch, those completions don't get recorded. This is a real gap for freelancers who work across devices.

Tidst connects via the Todoist API, not a browser extension, so completions from every device are captured. Whether you check off a task on your phone during a commute or mark something done on your Apple Watch, it will appear in The Queue. Every completion from every device, in one place.

The goal: a complete record, not a perfect habit

The best time tracking system isn't the most sophisticated one — it's the one you actually use. If a tool requires too much discipline to use consistently, it won't produce accurate records.

Task-based tracking through Tidst works because it doesn't ask you to change your behavior. You use Todoist the way you already do. The time tracking happens as a byproduct of your existing workflow. And because every task completion is captured, you end up with a complete record of your billable work — not an estimate based on memory.

Learn more about how time tracking in Todoist works or see the workflow for going from time tracking to invoice.

Stop losing billable hours

Tidst connects to Todoist so completed tasks can become time entries once you have reviewed them. No timers, and a lot less guessing.

Get started, it's free!