An open day, open evening or admissions event has a different job from daily attendance. Nobody is being marked present for a register. The school wants two things: a calm welcome at the gate, and an accurate list afterwards of which families actually came, so admissions can follow up with the ones who did and chase the ones who registered and stayed home.
This guide covers the free route first, then where it breaks on a busy morning, then a setup that keeps registrations, arrivals and walk-ins in one Google Sheet the school controls. It is written by QR to Sheets, which sells one of the options, so read the product sections as vendor material.
Can a free Google Form handle open day check-in?
For a small event, yes. Make a Google Form with the parent's name, email, the child's year group of interest and how they heard about the school. Print a QR code that opens it, put the poster at the gate, and every family that scans it adds a timestamped row to the linked spreadsheet. It costs nothing and takes twenty minutes to set up.
It starts to break in four places once more than a few dozen families arrive in the same half hour.
- Walk-ins and registered families look identical. A family that registered last week fills the same form again at the gate, so the sheet has two rows for them and no way to tell which one was the arrival.
- Families register twice. One parent signs up from work, the other from home, with different email addresses. Without an ID per family, the duplicate is found only when somebody reads the list by eye.
- The queue moves at the speed of the slowest typist. A parent holding a toddler and typing an email address on a phone takes far longer than a scan, and the queue backs up past the gate at exactly the moment the school most wants to look organised.
- There is no arrival record against the registration. The registration list says who intended to come. The poster form says who filled in a form. Matching the two afterwards is a manual job with names spelled three ways.
Add patchy wifi in the school hall and a fifth problem appears: a form submitted with no signal fails, and the parent walks off assuming it worked. If the event is small enough that a printed list and a highlighter would do, they genuinely do, and they do not fail when the wifi does.
Pre-registered families and walk-ins: two queues, one sheet
The fix is to stop forcing one mechanism to cover both kinds of visitor. A registered family already exists in your spreadsheet, so they should present something that identifies that row. A walk-in does not exist yet, so they have to type something, and they may as well type it once, at the desk.
Registered families: a pass that carries an ID
Give every registration row a family ID in its own column, for example OD-0001 upwards. Then turn each ID into a QR code. Two ways work without any code of your own. Paste the ID column into the free bulk QR code generator and print a desk list with each code beside the family surname, so families need to bring nothing and staff scan the code on the list when the family gives their name. Or email each family their own code before the day so they can show it on a phone.
Emailing a different image to every family is the part a spreadsheet cannot do on its own. A mail merge add-on or an Apps Script can do it for free if someone on staff is comfortable maintaining one. QR to Sheets offers two built-in routes, covered below: its Forms feature issues a code at the moment a family registers, and its Events add-on emails a code to every family on a list you already have.
Walk-ins: a form on a tablet at the desk
For families who did not register, leave a short form open on a school tablet beside the welcome desk, with a member of staff nearby to reset it between families. The useful property is timing: because the family completes the form at the desk, the submission time is their arrival time. Their form row is their registration and their check-in in one. Add a hidden or preset answer such as Walk-in so the rows can be told apart later. The trade-offs of a shared device are covered in the guide to a shared check-in tablet.
Link the walk-in form and the registration form to the same spreadsheet. Google Forms adds each one as its own responses tab, so registrations, walk-ins and the arrivals from the desk scanner all sit in one file, each on its own tab.
How many phones at the desk, and whose?
Staff phones scan the family's pass. The families do not scan anything with their own phones. That direction matters for three reasons: a member of staff sees who is in front of them, one known phone is easier to keep charged and working than two hundred unknown ones, and with QR to Sheets each phone that scans takes a device slot, so a scanner link printed on a poster for parents to open would try to register every parent's phone.
- One phone per queue lane. Staff scanning a pass takes about a second, so lanes are set by how fast families arrive, not by the scanner.
- One scanner link per entrance or campus, named after the place. Each row records the link it came from, so Main gate and Junior campus arrivals separate with a filter.
- One member of staff on exceptions only: the family whose phone died, the code that will not read, the grandparent who registered under a different name. They look the family up on the list and scan the printed code, so the lanes never stall.
- Charge the phones the night before. A three-hour open day with the camera running drains a battery faster than people expect.
If the hall wifi drops, scans are kept on the phone and sent when the signal returns, still carrying the time they were made. A repeat scan, such as a family who goes back to the car and comes in again, is recorded and flagged with an amber notice rather than refused. Leave that default on: the follow-up formula below counts a family once however many rows they have.
Registered versus arrived: building the follow-up list
Say the registrations tab is called Registrations, with the family ID in column F, and the scanner link writes to a tab called Arrivals. A scanner link appends one row per scan with the scan time in column A and the scanned value, the family ID, in column B. Two formulas in the Registrations tab do the rest.
- Arrived: =IF(COUNTIF(Arrivals!B:B, F2)>0, "Yes", "No") marks each registered family. Filter on No and you have the list of families who registered and did not come.
- First scan: =IFERROR(INDEX(Arrivals!A:A, MATCH(F2, Arrivals!B:B, 0)), "") shows when the family was first scanned, which tells you how the arrivals were spread through the morning.
- Unknown codes: a COUNTIF the other way round, from Arrivals into Registrations, finds any scanned value that matches no family, usually a test scan or a typo in a manual entry.
- Walk-ins: their rows are already complete in the walk-in tab. Stack them under the registered arrivals with a filter or a QUERY to give admissions one list.
Be clear which tools put what where. A QR to Sheets scanner link appends a row per scan to your Google Sheet, which is what the formulas above read. A QR to Sheets form with per-registration QR codes is different: the registration row reaches the sheet, but the check-in at the door is recorded in QR to Sheets against that submission and is not written to the sheet. That route suits a door headcount; it does not give admissions an arrived column without extra work. The per-submission QR code guide covers it in detail, including that checking a family in that way never takes a device slot.
If you would rather not maintain formulas at all, the QR to Sheets Events add-on imports the registration list from your Google Sheet, emails each family a personal QR code, and when staff scan it with the check-in scanner link, writes the check-in time back to that family's row. Families who register late are picked up when you re-sync, and only the new ones are emailed. It costs 25 USD per month on top of a paid plan.
| Capability | Google Form + QR poster (free) | QR to Sheets |
|---|---|---|
| Cost | Free | Free for 1 phone and 300 scans; then 7 USD per registered device per month |
| Who does the work at the gate | Each family types on their own phone | Staff scan a pass; walk-ins use the desk tablet |
| Registered versus arrived | Matched by hand from names | A COUNTIF on the family ID, or written back by the Events add-on |
| Families who registered twice | Found by reading the list | Found by checking the family ID and email column before the day |
| Hall wifi drops | The submission fails | Scans are kept on the phone and sent later with their scan time |
| Which entrance a family used | Only if you add a question | Recorded from the scanner link's name |
| ID screening and badges | No | No; use a visitor-management system for that |
Timezone, multiple campuses and the date on every row
Set the QR to Sheets workspace timezone to the school's own zone before the day. Scanner rows are written in that zone, so 9:05 at the gate reads 9:05 in the sheet, not the UTC equivalent. Check the spreadsheet's own time zone under File, Settings as well, and submit one test walk-in so you can see that the form timestamps agree with the scanner rows.
A workspace has one timezone. Several campuses in one city are simply several scanner links in one workspace. Campuses in different time zones are better run as separate workspaces, each with its own sheet, than as one sheet with times that mean different things on different rows.
Parent and child data in a school spreadsheet
Open day registrations hold personal data about parents and, indirectly, children. A few habits keep that manageable.
- Put an opaque ID in the QR code, never a name or an email. A pass photographed in the queue or dropped in the car park then reveals nothing.
- Collect only what admissions will use. Year group of interest and how the family heard about the school are useful; a child's date of birth on an open day form usually is not.
- Keep the sheet in a school Google account, shared with the admissions team only. The staff scanning at the gate never need access to it: scanning adds rows without giving them the sheet.
- If you use per-registration QR codes from a form, treat each code like a ticket: the check-in page it opens shows that family's name and contact details to whoever scans it.
- Set a retention date. Families who did not apply rarely need to stay in a spreadsheet for years, and your data protection policy will say how long applies.
None of this is legal advice. Your school's own data protection and safeguarding policies decide what you collect and how long you keep it.
When a visitor-management system is the better buy
Search for school visitor check-in and most results are visitor-management vendors, and for good reason: they do things a spreadsheet tool does not. As of 2026-10-06, Raptor's own pages describe scanning a government-issued ID, screening the name and date of birth against sex offender registries and the school's own alert lists, and printing a visitor badge with a photo; its EventSafe product sells event tickets with payment and applies the same screening to attendees. SchoolPass describes ID or photo scanning, QR visitor badges, watchlist alerts including non-custodial parents, and pre-registration links for events. Lobbytrack describes ID scanning, badge printing, watch list alerts and evacuation tools. None of the three publishes a price on those pages.
Those are the right tools when visitors walk into a building where pupils are present and your policy requires identity screening, printed badges or an evacuation list. QR to Sheets does none of that. It records presence: which code was scanned, at which entrance, at what time. It does not check an ID, prove who is holding a pass or print a badge.
Admissions CRMs are the other serious option. EnrolHQ, for example, describes QR code check-in on the day of an open day, staff marking attendance and writing notes, and follow-up invitations to families who attended. If your admissions team already runs one, use its check-in, because the arrival lands where the follow-up happens.
QR to Sheets fits the space between: an open day, open evening or campus tour where your visitor procedures already cover safeguarding, and what is missing is a fast desk and a timestamped arrival list in a Google Sheet you own.
Pricing, stated plainly. One phone at one gate, one scanner link and under 300 scans in total costs nothing. More phones cost 7 USD per registered device per month, so three phones across two entrances is 21 USD for the month, and you can cancel afterwards. QR to Sheets Forms includes 1 form and 10 trial submissions free; a real registration form needs the paid plan. The Events add-on is 25 USD per month on top.
Step by step
- 1
Decide what admissions needs on Monday
Usually it is a list of families who registered, a mark against the ones who came, the time they arrived, and the walk-ins nobody knew about. Design the day backwards from that list.
- 2
Collect registrations into a Google Sheet with a family ID
One row per family, not per child, with a short ID such as OD-0042 in its own column. The ID is what goes in the QR code, so it must never change once a family has it.
- 3
Give each registered family a pass
Email each family a QR code that encodes their ID, or print the codes on a desk list beside each surname so families need nothing at all. Either way the code carries the ID, not a name.
- 4
Set up one scanner link per entrance on staff phones
Name each link after the place, such as Main gate or Junior campus, so every row says where the family came in. Staff phones scan; parents do not scan with their own phones.
- 5
Put a walk-in form on a tablet at the desk
Families who did not register fill a short form there. Because they complete it at the desk, the submission time is their arrival time, so the form row is both their registration and their check-in.
- 6
Build the follow-up list from the two tabs
A COUNTIF against the arrivals tab marks each registered family as arrived or not, and the walk-in rows are added below. That one tab is the list admissions works from.
Frequently asked questions
Do parents need an app to check in at an open day?+
No. A registered family shows a QR code on their phone or on paper, or gives their name so staff can scan the code on a printed desk list. Walk-ins fill a short form on a tablet at the desk. Only the staff scanning use a phone, and that runs in the browser with no app and no account.
How do I handle families who turn up without registering?+
Give them a short walk-in form on a tablet at the desk rather than registering them on the spot in the main list. Because they complete it there, the submission time is their arrival time, so the form row is both their registration and their check-in. Mark those rows as walk-ins so admissions can tell them apart.
Should the QR code contain the family's name?+
No. Encode a short family ID such as OD-0042 and keep the name in the spreadsheet. A dropped or photographed pass then reveals nothing, and an ID survives a family registering under one parent's name and arriving with the other.
Can parents scan a poster with their own phones instead?+
With a Google Form, yes, and that is the free route. With a QR to Sheets scanner link, no: each phone that scans takes a device slot, so the scanner link belongs on staff phones and the poster belongs on a form.
How do I get a list of families who registered but did not come?+
Give each registration a family ID, scan that ID at the desk with a scanner link that writes to an arrivals tab, and add =IF(COUNTIF(Arrivals!B:B, F2)>0, "Yes", "No") beside each registration. Filter on No. The QR to Sheets Events add-on does the same job by writing each check-in time back to the family's row.
Does this replace our visitor-management system?+
No. It records which code was scanned, where and when. It does not scan ID documents, screen visitors against any list, print badges or prove who is holding a pass. If your policy requires those for visitors on site, keep your visitor-management system and use this only for the open day arrival list.
What does a one-day open day cost?+
One phone at one gate under 300 scans is free. Premium is 7 USD per registered device per month for every phone, billed monthly, so two phones for an open day is 14 USD for that month. Emailed passes from the Events add-on add 25 USD per month.