Start with the free route, because it is often enough
A Google Form costs nothing and handles clock in and clock out perfectly well for a handful of people. Add a name field, add a dropdown with In and Out, generate a QR code that opens the form, and print it. Every submission becomes a timestamped row in the linked spreadsheet, and you can build a pivot table from it the same afternoon.
This is the honest starting point, and plenty of small teams never need anything else. It is worth knowing exactly where it stops working before you pay anyone, including us.
Where the Google Forms route breaks
- There is no camera scanner. The QR code opens the form; it does not read a badge. Every person types or picks their own name, which is slow at a shift change and produces spelling variants that break your formulas later.
- A submission attempted with no signal is lost rather than queued. A basement, a loading bay or a rural site loses the row entirely, and nobody finds out until payroll.
- The form URL can be submitted from anywhere. Someone can clock in from their kitchen, and the response looks identical to one submitted at the gate.
- One form is one workflow. Several sites or several gates means several forms and several spreadsheets to reconcile.
Written by QR to Sheets, so treat the comparison below as vendor material and check the claims against the free route yourself. The Google Forms method above is genuinely free and we would rather you used it than paid for something you do not need.
The two-link method, step by step
A scanner link is a public URL that opens a camera in a phone browser. There is nothing to install and the person scanning does not create an account, which is the whole reason this works for temporary and rotating staff. Create two of them, named Clock in and Clock out, and point both at the same spreadsheet.
Each scan appends a row carrying the time, the value scanned and which link recorded it. Because the link name is written into the row, a single sorted spreadsheet tells you the direction of every movement without any interpretation.
The free plan includes one scanner link, so the two-link method needs Premium. That is a real limit and worth saying plainly rather than burying: you can test the whole flow free with one link, but running clock in and clock out together is a paid configuration at 7 USD per registered device per month.
What lands in your spreadsheet
Every scan writes a timestamped row into a Google Sheet you own, in your Drive, under your sharing settings. Nothing is held in a vendor database you have to export from later, and if you stop paying, the spreadsheet and its full history stay exactly where they are.
That is the real difference from a time-clock product, and it matters more than any feature: the record is yours. You can build whatever reporting tab you like on top of it, and it will still be readable in ten years without anyone's login.
| Capability | Google Forms + QR code (free) | QR to Sheets |
|---|---|---|
| Cost | Free | Free for 300 scans, then 7 USD per registered device per month |
| Camera scanner | None. The code opens a form to fill in | Opens a camera in the phone browser and reads the code |
| Worker installs an app | No | No |
| Worker needs an account | No, if the form allows anonymous responses | No |
| No signal at the site | The submission is lost | Scans queue on the device and sync when signal returns |
| Direction of movement | A dropdown the person picks themselves | Two separate links, so the row records which one was scanned |
| Where the data lives | Your own Google Sheet | Your own Google Sheet |
| Calculates hours worked | No, you write the formulas | No, you write the formulas |
| Payroll-ready timesheet | No | No |
When a scan log is the wrong tool
This is the section most vendor pages leave out, and it is the one worth reading twice. A scan log is a record of presence. It is not a timekeeping system, and there are jobs it should not be given.
- It does not calculate hours worked, pair a clock-in with its clock-out, handle a shift crossing midnight, apply break rules, or compute overtime. Those are spreadsheet formulas you write and own.
- It does not flag a missed clock-out. If someone forgets to scan on the way home, you get an orphan row and nothing tells you until you look.
- It has no supervisor approval step, no reason-coded edits and no locked pay period. Anyone who can edit the spreadsheet can edit the record.
- It does not prove who presented the code. A QR code is a token: scanning proves the code was shown to a camera, not that its owner was holding it.
If you are running payroll from this data in a jurisdiction with real record-keeping duties, take proper advice. In the United States the Fair Labor Standards Act requires the employer to keep hours worked each day and each workweek, and where an employer's records are inadequate the burden of proof shifts to the employer. In the EU, the Court of Justice's 2019 CCOO ruling requires an objective, reliable and accessible system for measuring daily working time. A spreadsheet an administrator can silently retype is a weak answer to both.
We would rather say this plainly than sell you the wrong thing. If the record has to survive a wage dispute, buy a purpose-built time and attendance system. If you need to know who was on site and when, and you want that record in your own spreadsheet, this is a good fit.
Where this genuinely fits
- Volunteer hours for a charity, church or community group, where nobody is paid from the record and the need is a defensible headcount.
- Contractor and visitor site sign-in, where the question is who is on site right now for a fire roll call or an induction record.
- Event and festival crew check-in, where the crew is temporary, rotates constantly and will never install anything.
- School and college staff or student presence, alongside the attendance register.
- Any team currently using a paper clipboard or a manually typed spreadsheet. This is straightforwardly better than that, and that is a fair claim to make.
Reading the log afterwards
Sort by the code and then by time, and the two logs interleave into a readable history per person. To turn that into durations you need a formula, which is covered step by step in the companion guide on calculating hours worked from scan rows. Keep the raw log untouched underneath and build any reporting on a separate tab, so the record of what actually happened is never overwritten by a calculation.
Step by step
- 1
Decide what one scan means before you print anything
A scan records that a code was presented to a camera at a time. Decide whether you are logging a person arriving at a place, or a shift starting for payroll. If it is payroll, read the honest limits section below first, because a scan log is the wrong record for that job.
- 2
Try the free Google Forms route first
Build a Google Form with a name field and an In/Out dropdown, generate a QR code pointing at the form URL, and print it by the door. Responses land in a spreadsheet with a timestamp. If your team is small and everyone has signal, you can stop here and pay nothing.
- 3
Create two scanner links, not one
Name one Clock in and one Clock out, and point both at the same spreadsheet. Nothing in the product alternates direction automatically, so a single link scanned twice produces two identical rows and the log cannot say which way the person went. Two links make the direction explicit and unambiguous.
- 4
Print one code per station, at the place the movement happens
The Clock out code belongs at the exit and the Clock in code at the entrance. A single desk holding both guarantees people scan when it is convenient rather than when it is true, which is the most common way these logs go wrong.
- 5
Give each person something to scan
Either the person scans a station code with their own phone, or a supervisor holds one phone and scans each person's printed badge. The second shape is cheaper here, because billing counts scanning devices rather than people.
- 6
Set your workspace timezone before the first shift
Timestamps default to UTC. Set the workspace timezone in Settings so the times in your sheet match the wall clock at the site, and check one row before you rely on a week of them.
Frequently asked questions
Can one scanner link handle both clock in and clock out?+
No, and it is worth being clear about why. Nothing in the product alternates direction between scans, so a single link scanned twice writes two identical rows and the log cannot say which way the person went. Create two links, named Clock in and Clock out, both pointed at the same spreadsheet.
Does this calculate hours worked?+
No. It records timestamped scan rows in your spreadsheet, and you write the formula that turns pairs of rows into durations. The companion guide on calculating hours worked from scans covers the formulas. If you need automatic hours, overtime rules and an approval workflow, you need a payroll time clock rather than a scan log.
Can it stop staff clocking in for each other?+
Not by itself, and any tool claiming otherwise is overselling. A QR code is a printed token, so a scan proves a code was presented to a camera at a time, not who presented it. Device registration helps, because scans come from a known allow-listed device rather than any phone, but it binds a device rather than a person. The honest controls here are physical and procedural: a code positioned where a supervisor can see it, or a supervisor scanning each person's badge.
What happens if there is no signal at the site?+
Scans are saved on the device first and sync when the connection returns, so a basement or a rural site delays the rows rather than losing them. The scanner also offers a device-local CSV backup that can be exported at any time.
Does every worker need their own paid seat?+
No. Billing counts registered scanning devices, not people. One shared phone at a gate is one device at 7 USD per month however many people scan through it, which is the cheapest shape for a large crew. If instead every worker scans on their own phone, each of those phones is a registered device, and that is the expensive shape.
Is the free plan enough for clock in and clock out?+
Not for both directions at once. The free plan includes one scanner link, one Sheet connection, one registered device and 300 lifetime scans, which is enough to test the flow end to end. Running a Clock in link and a Clock out link together needs Premium.