All guides
Events and training

QR attendance for seminars, conferences and training sessions

Record who attended each seminar, conference session or training workshop: one scanner per room, one Google Sheet, a per-session report and CPD minutes.

By the QR to Sheets team 11 min readUpdated 6 October 2026

Short answer

Session attendance at a seminar, conference or training day can be taken free with one Google Form per session behind a printed QR code, but a form response shows only that someone submitted it, not that they were in the room.

A stronger record for CPD and CE hours comes from staff scanning each attendee's badge at the session door, with one QR to Sheets scanner link per room or session writing every scan into the same Google Sheet.

A pivot table or COUNTUNIQUEIFS then gives attendance per session, and separate in and out links give minutes present, but you decide who qualifies, because neither route issues certificates.

A multi-session event asks a different question from a reception desk. The desk wants to know who arrived. A conference, a CPD seminar series, a corporate training programme or a university faculty seminar wants to know who was in which session, and often for how long, because that is what a continuing-education record, a training compliance file or a sponsor report is built from. This guide covers that per-session question. If you have one door and one list, the QR code sign-in sheet guide is the shorter read.

Written by QR to Sheets, which makes one of the tools described below, so weigh that accordingly. The free route and every spreadsheet formula here work whichever tool wrote the rows, including a Google Form's response sheet.

Why is session attendance harder than a sign-in sheet?

Can I take session attendance free with Google Forms?

Yes, and for an internal lunch-and-learn or a single informal seminar it may be all you need. Make one Google Form per session with name and email fields, link it to a Google Sheet, and show its QR code on the opening slide or a poster by the door. Attendees scan with their own phone camera and submit. Each response lands in the Sheet with a timestamp, it costs nothing, and there is no cap on responses.

The weakness is the one that matters for CPD and training compliance: every response is the attendee's own claim.

Switching off Accepting responses soon after the session starts narrows the window but does not change who creates the record. If an auditor may ask how attendance was verified, a record made by staff at the door is the better answer.

How do I record attendance with one scanner per room?

Turn the direction round: attendees carry a code on their badge, and whoever is on each door scans it. In QR to Sheets, our product, that door scanner is a scanner link, a web address that opens the camera in a phone browser. The person scanning installs nothing and needs no account, so a volunteer or temp can be handed the link on the morning. Each scan becomes one row in your Google Sheet with the time, the scanned code and the name of the link that recorded it.

The link name does the work. The scanner column of every row reads link: followed by the name, for example link:Hall B or link:Day 2 - Ethics workshop, so the session is recorded without anyone typing it. Point every link at the same Sheet tab and one log holds the whole event in time order. Choose the names before the day: renaming a link later changes the name on new rows only.

One link per room, or one link per session?

Google Form per session (free) compared with QR to Sheets
CapabilityGoogle Form per session (free)QR to Sheets
CostFreeFree for 300 scans, then 7 USD per registered device per month
Who creates the recordThe attendee, on their own phoneDoor staff, scanning the badge
Can be submitted from outside the roomYes, by anyone with the linkOnly if someone brings the badge, or a photo of it, to the door
Which sessionWhich form, or a dropdown the attendee picksThe link name, written into every row
Time present for CPDA second form most people skipA separate out link, scanned at the door
Same person scanned twiceA second response, no warningSaved and flagged by default
No signal in the roomSubmission failsKept on the phone, sent later with its scan time
Certificates or creditsNoNo; you decide from the Sheet

How do I print a QR code for every attendee badge?

Start from your registration export, one row per person. Give each person a short ID in its own column: the attendee or order number from your registration tool if it has one, or a simple sequence such as D0001, D0002. The code on the badge carries that ID, and the Sheet does the rest.

Copy the ID column into the free bulk QR code generator. It makes up to 500 codes at a time in the browser, with no account, and lays them out 24 or 8 to a sheet, the larger 8-up size being a practical badge sticker. It can print the encoded text under each code, which helps the door staff find a badge on the roster when a code will not read.

The generator makes codes, not badges: a branded badge with a logo and a large printed name still comes from a mail merge or an event platform, and the sticker goes on it.

How do I build a per-session attendance report in Google Sheets?

Leave the tab the scans land in alone, call it Log, and build everything else on other tabs. The examples assume the standard row: the timestamp in column A, the badge code in column B and the link name in column C. If you use column mapping, the link name is in column B and the ID in column D, so adjust the letters.

When one room link hosts several sessions

Add a Schedule tab with the link name in column A exactly as it appears in the log, with its prefix (link:Hall B), the session title in B, and the start and end date-times in C and D. Use the door-opening time as the start so early arrivals count. Leave the Log tab alone: on a Sessions tab put =FILTER(Log!A2:C, Log!A2:A<>"") in A2 to mirror the log, then name the session for every row in D2, filled down:

QR to Sheets writes each timestamp as YYYY-MM-DD HH:MM:SS in the timezone set for the workspace. The VALUE() wrappers in these formulas turn it into a date-time Sheets can compare, whether the cell holds a date or text, so the formulas work either way. Set that timezone to the venue before the first session, because rows already written are not rewritten, and an event logged in the organiser's home timezone puts the 09:00 keynote at the wrong hour.

How do I check minimum attendance and CPD hours?

The rules belong to your accrediting body or your training policy, not to a spreadsheet: some credit time present, some require a minimum share of each session, some only a sign-in. If time matters, record two scans. Give each session that carries credit an in link and an out link, such as Day 2 - Ethics - in and Day 2 - Ethics - out, both writing to the Log tab. Scan in at the door as people arrive and out as they leave, with a second phone at the exit if the room empties quickly.

On a CPD tab with roster IDs in column A, four formulas give a decision per person:

A zero in B or C means a missing scan, which is why the formulas show Check rather than a number: it is a person to ask, not a person to fail. First in to last out also overstates the time of someone who left for an hour in the middle. If that matters, scan the mid-session exit and the return too, and pair each in with the next out using the method in calculating hours from scan rows.

This records presence, not qualification. QR to Sheets does not issue certificates, award credits or report to an accrediting body, and nor does a Google Form. You decide from the Sheet who qualifies, then issue certificates the way you already do: a mail merge, a certificate tool or your learning system. A scan also shows that a badge was presented, not who was wearing it; staff at the door who look at faces are the control that covers that gap.

What happens when someone leaves and comes back?

By default every scan is saved. When the same code is scanned again on the same link within 12 hours, the door phone turns amber, says Already scanned with the count, and adds Saved anyway, so the delegate who stepped out for a call is scanned back in without an argument at the door. The repeat is a second row in the log and the COUNTUNIQUE report still counts that person once. A badge held in front of the camera is accepted once and has to leave the frame before it can be read again, so a slow hand does not create a pile of rows.

For a one-off session where each badge should count exactly once on that link, you may switch off Accept duplicate scans on that session's link. The link then records each code once, ever: a repeat shows Already scanned with the time it was first scanned, and nothing is added to the Sheet. That is reasonable here because the link serves one session and is retired afterwards. Leave it on for any room link reused across sessions or days, for every out link, for anywhere you want to see re-entry, and always for daily attendance or check in and check out, where the setting would refuse the next legitimate scan.

How many phones does a large conference need?

One for each door that is scanning at the same moment. Scanning a badge is quicker than finding a name on a printed list, but a full keynote hall with one door still queues, so give the main hall two doors and two phones and open them ten to fifteen minutes early. A runner covering two small rooms in turn is one phone.

When is an event platform the better buy?

Conference platforms are built for this job, and for some events they are the right purchase. Two examples, read on their own pages on 2026-10-06:

The spreadsheet route fits when registration already lives somewhere else (a Google Form, Eventbrite, an HR or learning system), you need a per-session record in a Google Sheet you own rather than inside a vendor dashboard, the door is staffed by volunteers or temps who should not need accounts, and you run a handful of events a year rather than a conference programme. A certificate tool can sit on the end of it: Certifier's guide to attendance sheets in Google Sheets (read 2026-10-06) describes turning Sheet rows into certificates, so the scanned log decides who qualifies and the certificate tool issues.

Step by step

  1. 1

    Give every attendee one code

    Export the registration list with a short ID per person and print one QR code per ID onto a badge or sticker. The same badge is scanned at every session, so it is printed once.

  2. 2

    Create one scanner link per room or per session

    Name each link exactly as it should appear in the report, such as Hall B or Day 2 - Ethics workshop. Point every link at the same Google Sheet tab so one log holds the whole event.

  3. 3

    Put a phone on each door

    Staff scan badges as people walk in. For sessions that carry CPD or CE credit, add an out link and scan again at the end, because time present needs two scans.

  4. 4

    Test one badge on every link before doors open

    Scan a spare badge on each phone and each link, then check the rows arrived with the right link name and a local time. Delete nothing; the test rows are easy to filter out by ID.

  5. 5

    Build the report on its own tab

    Leave the raw log untouched. A pivot table counts distinct attendees per session, and a CPD tab works out minutes present from the in and out scans so you can decide who qualifies.

Frequently asked questions

How do I track attendance at each session of a conference?+

Give every attendee one QR code on their badge, create one scanner link per room or per session, and have door staff scan badges as people enter. Every scan writes a row to one Google Sheet with the time and the link name, and a pivot table with COUNTUNIQUE gives distinct attendees per session.

Can I use a Google Form for CPD attendance?+

Yes, and it is free, but each response is the attendee's own claim: the link can be shared outside the room and anyone can type a colleague's name. Limit to 1 response requires respondents to sign in to a Google Account, and a single form gives no leaving time. It suits informal sessions better than audited CPD.

How do I record CPD minutes or hours with QR codes?+

Use two scanner links per session, one for in and one for out, both writing to the same Sheet. The FILTER formulas in the CPD section give each person's first in-scan and last out-scan as real date-times; subtract and multiply by 1440 for minutes. Treat a missing scan as a person to check, not a fail.

Does QR to Sheets issue CPD certificates or award credits?+

No. It records who was scanned, where and when, in your own Google Sheet. You decide who qualifies from that record and issue certificates through your existing route, such as a mail merge, a certificate tool or your learning system. Event platforms such as Dryfta state that they award CE credits automatically.

What if an attendee forgets their badge?+

Door staff can type the attendee's ID into the scanner's manual entry field after finding them on the printed roster, or hand over a spare numbered badge and note it on the Roster tab. Both write the same kind of row as a scan, so the report needs no special case.

Should I turn off Accept duplicate scans for a training session?+

Only on a link used for one session, where each badge should count once. With it off, a repeat shows Already scanned and adds no row. Keep it on for room links reused across sessions or days, for out links, and always for daily attendance or check in and check out.

Try it on your own Google Sheet

Connect Google, create a scanner link, and share the URL with your team. The free tier covers 300 scans, and nobody you share it with has to install anything.

Start for free

No credit card required

Keep reading