FeaturesInvoicingManage projects and bill their time

Manage projects and bill their time

Invoicing · about 4 min · updated Aug 2026

If you bill by the hour, Stacks keeps the whole loop in one place: create a project for a client, track your hours against it, and turn that unbilled time into a draft invoice with a single click. Each time entry becomes its own invoice line — hours multiplied by your project rate — and Stacks marks the time as billed so you never charge for the same hour twice.

Before you start

Step by step

  1. Create a project. Go to Invoicing → Projects and click New Project. Give it a name, choose the Client (contact), and set a Default hourly rate and Currency. You can also pick a status, a color, and add a description. Save with Create project.
  2. Track time against it. Open Time Tracking (the button sits at the top of Projects). Pick the project, type what you're working on, keep Billable checked, and hit ▶ Start. Hit ■ Stop when you're done. Forgot to run the timer? Use + Add manually to log a date, project and hours (e.g. 1.5) after the fact.
  3. Open the project to see what's unbilled. Back on the project, the Unbilled time card totals up every billable, un-invoiced entry and shows how many are ready to bill.
  4. Invoice the unbilled time. Click Invoice unbilled time. Stacks builds a new draft invoice — one line per entry, hours × your project rate, labeled with your note and the date — and marks those entries Invoiced so they won't be billed again.
  5. Review and send. Stacks opens the draft with a 14-day due date. Nothing is sent automatically — tweak the lines if you need to, then send it to your client just like any other invoice.
💡
It's all free. Projects, time tracking and one-click billing are part of Stacks' invoicing — free on every plan, with no per-project or per-user limits. There's no AI Pro upgrade to unlock any step here.

Good to know

Frequently asked

Why don't I see the "Invoice unbilled time" button?
It only appears when the project has a client attached and there's billable, stopped time that adds up to more than $0 (so the project needs a rate too). Add a contact, set a rate, stop a running timer, or mark some time billable — and it shows up.
Can I bill just some of the hours, not all of them?
The button rolls up all unbilled billable time on the project at once. To hold hours back, log them as non-billable in the first place, or delete the entries you don't want to bill yet before you invoice — then bill the rest.
Does it send the invoice to my client automatically?
No — it creates a draft and opens it for you. You review and send it yourself, so you're always in control of what goes out.
Was this helpful?

Ready to bill your hours the easy way?

Core business tools, unlimited users, free forever.

Start free →  Explore more features →