Skip to content

Time Card Calculator

Enter clock-in/out times and breaks — get daily and weekly totals plus estimated gross pay.

Your time card

Optional — used for the printable time card.
Monday
Unpaid breaks (minutes)

Tuesday
Unpaid breaks (minutes)

Wednesday
Unpaid breaks (minutes)

Thursday
Unpaid breaks (minutes)

Friday
Unpaid breaks (minutes)

Saturday
Unpaid breaks (minutes)

Sunday
Unpaid breaks (minutes)

Week 2 · Monday
Unpaid breaks (minutes)

Week 2 · Tuesday
Unpaid breaks (minutes)

Week 2 · Wednesday
Unpaid breaks (minutes)

Week 2 · Thursday
Unpaid breaks (minutes)

Week 2 · Friday
Unpaid breaks (minutes)

Week 2 · Saturday
Unpaid breaks (minutes)

Week 2 · Sunday
Unpaid breaks (minutes)

Fill in your times to see daily totals, weekly hours, and pay.

Related tools

Frequently asked questions

How does the time card calculator handle overnight shifts?

If your clock-out time is earlier than your clock-in time, the calculator treats the shift as continuing into the next calendar day (an overnight shift). For example, clock-in 10:00 PM and clock-out 6:00 AM is counted as 8 hours.

Are breaks paid or unpaid?

Breaks are unpaid by default. The calculator subtracts break minutes from your gross shift time to give net paid work time. If your employer pays for a break, simply leave it out of the break inputs.

How is overtime calculated?

The default threshold is 40 hours per week with a 1.5× overtime multiplier. You can change both. Hours above the threshold in a week are multiplied by your hourly rate and the multiplier to estimate overtime pay.

Can I use this for biweekly pay periods?

Yes. Switch the period to biweekly to add a second week. Each week is totaled separately for overtime, and the two-week total is shown for reference. Overtime is computed per week, not across the full pay period.

Does this store my time card?

No. All math runs in your browser. Inputs may be saved in your browser’s local storage for convenience, but nothing is sent to a server. The Share button encodes your inputs in the page URL instead.