Timesheets almost never arrive in a billing-ready format. A client call logged at "1h 45m," a review session at "3h 15m," and a quick fix at "2h 30m" all need to be added together and then converted into a single decimal-hour figure before you can multiply by your rate — and doing that conversion by hand, entry by entry, is where invoices quietly end up wrong. This calculator lets you add a row for each work session in plain hours-and-minutes form, adds them all up, and hands back the total as both an H:MM readout and a decimal-hour figure, then multiplies that decimal total by your hourly rate to give you the exact amount to invoice.
How it works
Every row accepts an hours field and a minutes field, matching how a timesheet, calendar entry, or time-tracking app actually logs a session. Click "Add another row" for each additional session — there's no fixed cap, so a two-session day and a twelve-session billing period both work the same way — and remove a row you added by mistake with its × button. The calculator converts every row to minutes (hours × 60, plus the minutes field), adds every row together into one running total, then converts that total back into two display formats: an H:MM string for a human-readable read like "7h 30m," and a decimal-hours number for anything that needs to be multiplied — most importantly, your invoice.
The amount to invoice is calculated from the unrounded decimal-hour total, not from the rounded number shown on screen. That distinction matters more than it looks: rounding the total hours first and then multiplying by the rate can shift a real invoice by a few cents, and at a high hourly rate or a long timesheet, those cents can add up across a billing period. Only the final dollar amount gets rounded to the cent, which is the same order of operations invoicing and payroll software use.
Worked example
Say your timesheet for a client has three logged sessions this week — 2h 30m, 1h 45m, and 3h 15m — entered as three rows, and you bill at $60 an hour:
- Row 1: 2h 30m = 150 minutes
- Row 2: 1h 45m = 105 minutes
- Row 3: 3h 15m = 195 minutes
- Total minutes: 150 + 105 + 195 = 450 minutes
- Total time: 7h 30m
- Total decimal hours: 450 ÷ 60 = 7.5
- Amount to invoice: 7.5 × $60 = $450.00
Notice the total isn't a clean number of hours until it's added up — three odd-looking entries land on exactly 7.5 hours, which is easy to bill correctly but easy to get wrong doing the addition and the hours-to-decimal conversion separately by hand.
How to interpret your result
The amount to invoice is the number to put on the client-facing invoice — it's already the full decimal-hour total multiplied by your rate, rounded to the cent. Total time (H:MM) is there for your own records or for a timesheet line item a client might want to see in familiar clock format, and total decimal hours is the number underneath both of those, useful if you need to plug it into another tool, a spreadsheet, or a different rate for a portion of the work.
If minutes across your entries add up to 60 or more, they carry into an extra hour automatically — logging 40 minutes on one entry and 35 on another correctly becomes 1 hour 15 minutes in the total, not "40m + 35m" sitting oddly past the 59-minute mark. That carrying happens because the calculator works in raw minutes internally and only converts back to hours-and-minutes format once, at the very end, for the total.
This calculator assumes a single flat hourly rate applied to the whole total. If different entries bill at different rates — a discounted rate for admin time, a premium rate for rush work — total each rate group separately using multiple passes through this calculator, then add the resulting invoice amounts together by hand.
Methodology & sources
The formula is: totalMinutes = Σ(rowHours × 60 + rowMinutes) across every row you add, totalDecimalHours = round2(totalMinutes / 60), totalTime = "${wholeHours}h ${remainderMinutes}m" where wholeHours and remainderMinutes come from dividing totalMinutes by 60, and amountToInvoice = round2((totalMinutes / 60) × hourlyRate). The invoice amount is deliberately computed from the unrounded minutes-to-hours conversion rather than from the rounded totalDecimalHours figure shown above it, so the dollar total matches an exact hand calculation rather than one rounded twice.
Converting minutes to decimal hours by dividing by 60 — 30 minutes becomes 0.50 hours, 45 minutes becomes 0.75 hours — is the standard method payroll and time-tracking systems use to make an hours-and-minutes total billable, since a hertz-and-rate calculation needs a single decimal number rather than a clock-format duration. Harvest, a time-tracking and invoicing platform, walks through the same divide-by-60 logic in its own decimal time conversion chart, which is worth a look if you want to sanity-check an individual entry by hand before trusting the totals here.