CronTally

Standby

00:00:00

Select a client and start CronTally

Manual time entry

Override or backfill audited intervals with exact start/end timestamps.

Add new client

/ hr

Only full blocks go on the invoice; leftover hours stay in the bank for next time.

Shown at the bottom of every invoice PDF for this client.

Invoice numbering

Sets the invoice ID printed on each PDF (header and filename). When you finalize an invoice, CronTally uses the next number below and then bumps it by one.

Text before the number, e.g. INV- or 2026-.

Assigned to the next invoice you finalize (not retroactive).

Zero-pads so 1 becomes 0001 when width is 4.

Next ID preview: INV-0001

Billing preferences

Global rules applied when you build any invoice. They change how hours and dates appear on the PDF; they do not change your raw session log in the ledger.

Each session in the invoice period is rounded up to this interval before hours are summed (e.g. 7 minutes → 15 minutes at 15-minute rounding).

Used for issue date, due date, service period, and per-line session dates on exported PDFs.

Bill from

Company name, logo, and contact details in the Bill from block on every invoice PDF. Session and client data are unchanged.

Optional. Appears under the company name on invoices.

Off by default for a clean invoice with your branding. Enable for a subtle footer credit.

Generate invoice

Sum any logged hours in a date range (partial intervals OK). A printable invoice renders below.

Session log

Click a row to edit. Delete removes accidental logs.
Client When Hrs Notes Status
Loading…

Existing clients

No clients yet.

Data backup

Save your local SQLite database to keep billing history when changing computers.

Manage invoices

Finalized invoices appear here. Mark as paid when payment is received.

Date Client Amount Status
No finalized invoices yet.
Changes apply live and save automatically