QR code attendance is recording who is present by scanning a QR code, and QR to Sheets does it from any phone browser: a teacher or staff member opens a scanner link, scans the code each person carries, and every scan becomes a timestamped row in your Google Sheet. No app, no student accounts, free for 300 scans.
Free for 300 scans. No credit card required.
Paste a list of names or student IDs, one per line, and print a sheet of cards: one QR code per person, sized for label sheets or ID cards. No signup and no watermark. The codes are made in your browser, so the list is never uploaded. To record the scans into a Google Sheet afterwards, open a scanner link on any phone.
Tip: the 5 x 10 layout fits student ID cards.
One value per line, or comma separated. Student names, asset tags, SKUs, room numbers, seat numbers — anything you want a scannable code for. Paste a column straight out of Google Sheets and it will work.
0 codes ready
There are two models, and most confusion comes from mixing them up. In the first, you post one QR code on a wall, a screen or a slide. Everyone scans it with their own phone, it opens a form, they type their name or ID and submit, and the answer lands in a spreadsheet. In the second, every person has their own code, printed on an ID card, a badge or a sticker, and one teacher or staff member scans each code with a single phone as people arrive.
The posted-code model needs no printing and no staff device, which is why it is the usual free setup. Its costs are that every attendee needs a charged phone with signal, it takes as long as the slowest person to type, and the attendance is self-reported: anyone who has the code can submit it.
The per-person model needs codes printed once and a staff member present, but nobody being marked needs a phone, a class of thirty takes about as long as walking the room, and the person scanning sees who is in front of them. A middle option is a shared tablet at the door that people scan their own card against. QR to Sheets uses the per-person model: you open a scanner link in a phone browser and every scan becomes a row with the code, the time in your workspace timezone and the name of the link.
QR attendance for people without smartphonesRun a check-in kiosk on a shared tablet
| Capability | Google Forms + one QR code | Attendance apps (student installs an app) | QR to Sheets scanner link |
|---|---|---|---|
| Cost to start | Free | Usually a subscription, sometimes with a limited free tier | Free for 300 scans, then 7 USD per scanning device per month |
| What each person needs | A phone with a camera and signal | The app installed and usually an account | A printed code. Only the staff member scanning needs a phone |
| Stops proxy or shared-code scans | No. A screenshot or the form link works from anywhere | Some add location checks, rotating codes or face matching; a QR scan alone proves a code was shown, not who showed it | Partly. Staff scan each person in front of them; a code proves it was shown, not who showed it |
| Works offline | No. A submission with no signal is lost | Varies by app | Yes, once the scanner page is open. Scans are saved on the phone and sync later |
| Where data lands | A Google Sheet linked to the form | The vendor's own system, usually with a CSV export | Your own Google Sheet, one row per scan |
| Setup time | About ten minutes | Getting every person to install and sign in | A few minutes for the admin, plus printing the codes |
We make QR to Sheets. App behaviour varies by vendor, so the middle column describes the category, not any one product.
Yes. A Google Form plus a QR code that opens it costs nothing to set up and writes every submission to a Google Sheet. For an occasional meeting, a training session or a one-off event it is genuinely the right answer, and you should try it first.
Where it breaks is regular attendance. Every attendee needs a phone and signal, a submission attempted with no connection is lost rather than queued, nothing stops one person submitting for an absent friend from the same screenshot, and a daily class turns into thirty people typing.
We make QR to Sheets, so weigh this with that in mind. Its free plan covers 300 scans in total, with one scanner link, one Google Sheet and one scanning device, which is enough for one class for about two weeks or a handful of events. After that it is 7 USD per scanning device per month with unlimited scans, so the price depends on how many phones scan, not on how many people are marked present.
Not with either free route. In the posted-code model, a phone camera opens the form link directly, so attendees need a phone but no app. Dedicated attendance apps usually do ask every attendee to install the app and create an account, which is the step that loses people on day one.
With QR to Sheets, the people being marked present need nothing but a printed code, or the same code shown on their own screen. The teacher or staff member scanning opens the scanner link in Chrome or Safari, with no install and no account. Only the admin who connects the Google Sheet signs in, with their Google account.
For the posted-code model, the QR code holds the link to a form:
For the per-person model, each person needs their own code. Paste a list of names or student IDs into the free generator on this page and it prints one code per line, sized for label sheets or ID cards. Each code contains exactly the text you pasted, so that text is what appears in your sheet when it is scanned. Use an ID rather than a full name if you would rather names were not printed inside the codes. The codes are static, so they never expire.
With one posted code, you cannot fully stop it, and any tool that claims otherwise is overstating. You can make it harder: show the code only at the start of the session and take it down, use a new form link each session so last week's screenshot no longer works, and restrict the form to signed-in accounts in your organization so each response is tied to a person. Then compare submission times against when the session started.
The per-person model removes the remote case entirely, because a staff member scans each code in person and sees who is holding it. It still cannot prove identity: a QR code proves a code was presented, not who presented it, so a friend holding someone else's card is caught by the person scanning, not by software. We make QR to Sheets and it does not check location either; the control is that a member of staff holds the phone.
With a posted form code, yes: add a required class or session question so every row says which one it belongs to. The catch is that people pick the wrong option, so a separate form per class is cleaner when the sheets need to stay apart.
With per-person codes, the same card works everywhere, every day, and you separate sessions on the scanning side instead. Create one scanner link per class, session or event, and each row carries that link's name alongside the timestamp, so filtering by class or date is one step in the sheet. The free plan includes one active link; Premium has unlimited links.
Each link has an Accept duplicate scans setting. Leave it on, the default, for anything people attend repeatedly: a repeat scan is still recorded and flagged on screen. Turning it off records each code only once on that link, ever, which suits a single event entry and is the wrong choice for daily attendance or check in and check out.
If your school or company runs on Microsoft 365, Microsoft Forms is the equivalent free route: it can show a QR code for a form, and its responses open in Excel. Google Forms responses can also be downloaded as a CSV file that Excel opens.
QR to Sheets writes to Google Sheets, not to Excel directly. Your sheet stays the live copy, and File, then Download, then Microsoft Excel gives you an .xlsx file whenever you need one, which is also the usual way to move attendance into a student information system or payroll tool.
It records less than most sign-in sheets. With a Google Form, responses stay in your Google account, and whatever you ask for, such as an email address, is stored with them.
With QR to Sheets, each scan records the code value, the time of the scan, the name of the scanner link and the type of device, plus a random identifier for the phone so the plan can count devices. Nothing is asked of the person being scanned: no account, no name, no email and no location. The rows go to your own Google Sheet, and the staff member scanning never sees the spreadsheet. QR to Sheets also keeps a record of each scan so a failed sync can be retried and your dashboard can count scans. A code only contains the text you put in it, so printing IDs instead of names keeps names off the cards.
The same scan works everywhere; what changes is who scans, where, and what the sheet needs to show.
Free for 300 scans. No credit card. No app for anyone.
Start for free