Moodle tracks attendance through its built-in Attendance activity (mod_attendance): you create a session per class, mark each learner Present, Late, Excused or Absent, and those statuses feed the gradebook and course completion. For live online classes, marking by hand doesn't scale — the reliable method is to pull attendance automatically from the meeting platform's participant report, match attendees to Moodle users by email, and compute an attended percentage. EDZLMS's EDZ Session plugin does this automatically for Zoom classes run inside Moodle.
Key takeaways
- Moodle's Attendance activity (mod_attendance) is the native register — sessions, statuses, points, reports.
- Default statuses are Present, Late, Excused and Absent, each with configurable points.
- Attendance can be taken by the teacher, self-marked by learners, or captured automatically from a data source.
- For live online classes, automatic capture from the meeting participant report is the only method that scales.
- Match participants to Moodle users by email — name matching is unreliable.
- Attendance can drive both course completion and the gradebook, and exports to CSV/PDF for compliance.
- EDZ Session automates the whole pipeline for Zoom classes run inside Moodle.
Why attendance tracking matters more online than in a classroom
In a physical classroom, attendance is almost incidental — the teacher can see who is in the room. Online, that certainty disappears. A learner can log in and walk away, join for five minutes, or open the class on a second device and never really watch. For institutions, that gap has real consequences: compliance and audit requirements (especially in regulated corporate training and accredited academic programmes), funding and certification that depend on verified participation, and the simple need to know whether your teaching is actually reaching people.
Good Moodle attendance tracking turns "they were enrolled" into "they actually attended, for this long, on this date" — a defensible record you can report on, export, and tie to course completion. This guide covers how attendance works in Moodle end to end: the native Attendance activity, how to set it up and take it, how it behaves for live online classes, how to automate it, and the reporting and completion rules that make it useful.
Moodle's native Attendance activity, explained
Moodle's core tool for this is the Attendance activity (the mod_attendance module, bundled with most Moodle distributions). You add it once to a course, and it becomes the register for that course. Inside it you create sessions — one per class meeting — either individually or as a recurring series (for example, "every Monday and Thursday for 12 weeks"). For each session, learners are given a status, and each status carries a points value that can feed the gradebook and completion.
The default attendance statuses
Out of the box, Moodle ships four statuses, each with a short acronym and a configurable points value. You can rename them, change the points, or add your own (for example, "Left early" or "Technical issue").
| Status | Acronym | Default points | Typical use |
|---|---|---|---|
| Present | P | 2 | Attended the full session |
| Late | L | 1 | Joined after the session started |
| Excused | E | 1 | Approved absence (leave, medical, etc.) |
| Absent | A | 0 | Did not attend |
Because the points are configurable, attendance can become part of a learner's grade — for example, weighting participation at 10% of the course — or simply a record that never touches the grade. That flexibility is why the activity sits at the centre of most Moodle attendance setups.
Three ways to take attendance
Teacher marks manually. The instructor opens the session and sets each learner's status on a grid. Simple and reliable for small, in-person or synchronous cohorts — but slow and error-prone at scale.
Students self-mark. Moodle lets learners record their own attendance for a session, optionally protected by a password that the teacher reads out, a QR code, a time window (self-marking only allowed during the class), and an IP/subnet restriction (only from the campus network). This offloads the clicking to learners but still relies on them being honest and remembering to do it.
Automatically, from a data source. The most reliable method for online classes is to derive attendance from something the learner cannot fake — the meeting platform's own participant report. That is where manual and self-marking break down, and where automation earns its place (covered below).
The hard part: attendance for live online classes
Everything above works beautifully for a classroom. The moment your classes run on Zoom, Google Meet, Microsoft Teams, or BigBlueButton, three problems appear. First, the teacher can't watch a grid and teach at the same time — nobody is free to mark 60 learners while presenting. Second, self-marking is unreliable — learners forget, or mark themselves present and leave. Third, and most importantly, the truth already exists in the meeting platform: every join and leave time is recorded in the participant report. Re-typing that into Moodle by hand is wasted, error-prone work.
The right model for live classes is to let the meeting platform be the source of truth and pull its attendance data into Moodle automatically.
How automatic attendance actually works
Automatic attendance follows a simple pipeline. After a live class ends, the system retrieves the participant report from the meeting platform — the list of who joined, when, and for how long. Each participant is matched to a Moodle user (matching by email is by far the most reliable; matching by name is a fallback that breaks whenever someone's display name differs from their account). The system then de-duplicates each person's join/leave segments — a learner who dropped and rejoined three times is one attendee, not three — and computes their attended percentage, measured against either the scheduled duration or the actual meeting duration. Finally, that percentage is written into Moodle, where it can drive course completion and the gradebook, and be exported for records.
Anyone the system can't confidently match is surfaced for a quick manual reconcile, so nobody silently falls through the cracks. Done well, the teacher does nothing after class — the register fills itself in.
Tools and plugins for Moodle attendance
Depending on how your live classes run, different tools capture attendance with different amounts of automation.
| Method / tool | How it captures attendance | Best for | Automated? |
|---|---|---|---|
| Attendance activity (manual) | Teacher sets each status on a grid | Small in-person / synchronous cohorts | No |
| Attendance activity (self-marking) | Learners mark themselves, with password / QR / time / IP limits | Trusted cohorts, campus network | Partly |
| BigBlueButton activity | Native Moodle BBB integration logs session participation | Institutions standardised on BBB | Partly |
| Zoom participant-report import | A plugin pulls the Zoom report into the register | Zoom-based live classes | Yes |
| EDZ Session (EDZLMS) | Pulls Zoom participant reports, matches by email, computes % into completion — plus CSV/PDF export | Institutions running many Zoom accounts inside Moodle | Yes, fully |
For the full picture on choosing add-ons, see our guide to the best Moodle plugins for e-learning. And if your live classes span multiple institutional Zoom accounts, our Moodle Zoom integration guide explains how EDZ Session ties scheduling, attendance, and recordings together in one place.
Turning attendance into course completion and grades
Attendance is only useful if it drives something. In Moodle you can connect it two ways. Through activity completion, you mark the Attendance activity complete when a learner reaches a threshold — for example, "attended at least 80% of sessions" — which in turn can gate the next module or the course certificate. Through the gradebook, the points from each status roll up into an attendance grade you can weight into the final mark. A common, sensible setup is: attendance feeds a small graded item (say 10%) and a completion rule requiring 75–80% attendance before certification. Learn more about structuring courses well in our guide on how to use Moodle LMS.
Reporting and exports
The Attendance activity produces per-session and per-student reports inside Moodle, showing each learner's attendance history, percentage, and points. Crucially for compliance, these export to CSV/Excel (and, with the right setup, PDF), so you can hand an auditor, a funder, or an accreditation body a clean record without screenshots. When attendance is automated, those exports are trustworthy by construction — they came from the meeting platform's own data, not someone's memory.
Best practices for reliable attendance
Standardise how learners join. The single biggest cause of messy attendance is participants joining with a name or email that doesn't match their Moodle account. Ask learners to join with their institutional email, and prefer email matching over name matching. Decide your attendance basis up front — percentage of actual meeting duration is usually fairer than scheduled duration if classes sometimes run long or short. Set a clear threshold and publish it so learners know what "attended" means for completion. Keep a human in the loop for edge cases — a genuine technical failure shouldn't cost someone their certificate — and reconcile unmatched participants promptly. And automate wherever classes are live and online; manual marking simply doesn't scale past a couple of small cohorts.
How EDZLMS automates attendance for live classes
This is exactly the problem our EDZ Session plugin was built to remove. Teachers schedule a live class inside the Moodle course on an institution-owned Zoom account; after the class, EDZ Session pulls the Zoom participant report, matches attendees to Moodle users by email, de-duplicates their join/leave segments, computes each learner's attended percentage against the real meeting duration, and feeds it straight into Moodle course completion — with CSV/PDF export for records and a simple screen for teachers to reconcile anyone unmatched. No grids, no spreadsheets, no honesty system. As a Bengaluru-based Moodle and custom eLearning company serving 400+ clients and 18,000+ learners, we also build bespoke attendance and reporting workflows on Moodle where an institution needs something specific. Explore the wider platform on our LMS page.
- 1Add the Attendance activity to your course
Turn on editing, add an Attendance activity. It becomes the register for that course.
- 2Create your sessions
Add a single session or a recurring series matching your class schedule (e.g. weekly for a term), with date, time and duration.
- 3Configure statuses and points
Keep the defaults (Present/Late/Excused/Absent) or rename them, adjust points, and add custom statuses like 'Left early'.
- 4Choose how attendance is taken
Teacher-marked, learner self-marking (with password/QR/time/IP limits), or automatic capture from your meeting platform's report.
- 5Connect attendance to completion and grades
Set an activity-completion threshold (e.g. 80% attended) and, if you want, weight the attendance points into the gradebook.
- 6For live classes, automate the capture
Use a plugin such as EDZ Session to pull the Zoom participant report, match by email, and write attended % into Moodle automatically.
- 7Review, reconcile and export
Check reports, reconcile any unmatched participants, and export CSV/PDF for audit and compliance records.
Manual / self-marked attendance
- Teacher marks a grid, or learners mark themselves
- Doesn't scale past small cohorts
- Relies on memory and honesty
- Prone to errors and gaps
- Re-types data the meeting platform already has
Automated attendance (EDZ Session)
- Pulls the meeting participant report automatically
- Matches attendees to Moodle users by email
- Computes attended % against real meeting duration
- Feeds course completion and the gradebook directly
- Exports to CSV/PDF; teacher only reconciles exceptions
Need a custom attendance or reporting workflow on Moodle?
EDZLMS builds bespoke Moodle attendance, completion and reporting integrations — including automatic capture from Zoom, Teams or BigBlueButton and custom compliance exports. Book a free demo at https://edzlms.com/book-a-demo/ or email marketing@edzlms.com.
Fix matching before you fix anything else
Most 'attendance is wrong' complaints come down to participants joining with the wrong name or email. Ask learners to join with their Moodle email and match by email, not name — it removes the majority of reconciliation work instantly.
Frequently asked questions
How do I track attendance in Moodle?
Add the built-in Attendance activity to your course, create a session for each class, and mark learners Present, Late, Excused or Absent — or let them self-mark, or capture attendance automatically from your meeting platform. The statuses feed reports, the gradebook, and course completion.
Does Moodle have a built-in attendance feature?
Yes. The Attendance activity (mod_attendance) is bundled with most Moodle distributions. It supports sessions, configurable statuses and points, self-marking with password/QR/time/IP restrictions, reporting, and CSV/Excel export.
Can Moodle track attendance for live Zoom or online classes automatically?
Yes, with a plugin. The meeting platform records who joined and for how long; a plugin such as EDZLMS's EDZ Session pulls that participant report, matches attendees to Moodle users by email, computes an attended percentage, and writes it into Moodle completion — no manual marking.
What are the default attendance statuses in Moodle?
Present (P, 2 points), Late (L, 1), Excused (E, 1), and Absent (A, 0). The names and points are configurable, and you can add your own statuses.
How do I make attendance affect course completion?
Set an activity-completion condition on the Attendance activity — for example, require a minimum attended percentage — and optionally weight the attendance points into the gradebook so participation counts toward the final grade.
Can I export Moodle attendance records?
Yes. The Attendance activity produces per-session and per-student reports that export to CSV/Excel (and PDF with the right setup), which is what you need for audit, funding, and accreditation.
Why is my Moodle attendance showing unmatched participants?
Participants joined the meeting with a name or email that doesn't match their Moodle account. Ask learners to join with their Moodle email and use email matching; reconcile any remaining unmatched participants manually from the attendance screen.
Running live classes and tired of chasing attendance by hand? Book a Free Demo and we'll show attendance filling itself in — pulled straight from your Zoom classes into Moodle completion with EDZ Session.