Meta-courses are Moodle's answer to the "one course, many sections" problem. Used correctly, they let an instructor teach Business 101 once and have all six sections see the same content, with proper separation of gradebooks and group discussions. Used incorrectly, they're a source of ghost enrollments, orphan grades, and permission leaks.
This is the pattern we use in Classeo when we fuse metacourses from the ERP automatically, and a step-by-step if you're doing it by hand.
What meta-courses are, and aren't
A Moodle meta-course is a course that has one or more "child" courses as enrollment sources. Students enrolled in any child course are automatically enrolled in the parent (meta) course. It's a many-to-one relationship at the enrollment layer only — the actual course content lives in the parent.
What meta-courses are NOT:
- A way to give one teacher access to multiple independent courses — that's just multiple teachers-of-record.
- A way to merge grade columns — each section can still have its own gradebook category.
- A shortcut to skip Moodle's role system — permissions still matter.
When to fuse and when NOT to
Fuse when:
- The same instructor teaches multiple sections of the same course.
- Content is identical across sections (syllabus, readings, video lectures).
- Section-level interaction (discussions, group assignments) is handled through Moodle groups, not through separate courses.
Don't fuse when:
- Two sections have substantively different content (Monday/Wednesday vs Tuesday/Thursday with different projects).
- Different instructors teach different sections and don't want to see each other's materials.
- One section is a for-credit course and another is an audit-only section.
The step-by-step
Step 1: Create the parent course first
Set up the meta-course in Moodle before creating or importing the section courses. Name it by course code without the section suffix, e.g. BUS-101 Business Fundamentals.
Step 2: Add sections as child courses
In the parent course, add each section (BUS-101-A, BUS-101-B, etc.) as a meta-course enrollment method. Moodle will sync student enrollments automatically going forward.
Step 3: Configure groups
Create a Moodle group for each section in the parent course. This lets you:
- Scope discussions and forums to a single section.
- Give TAs access only to their section's gradebook column.
- Schedule section-specific office hours or assignments.
Classeo auto-creates these groups based on the SIS section IDs so you don't have to do it by hand.
Step 4: Handle late adds and section swaps cleanly
This is where manual setups fail. If a student moves from section A to section B mid-term, the meta-course should:
- Remove them from Group A, add them to Group B.
- Preserve their submissions and grades in the parent gradebook.
- Re-scope any section-specific resources they had access to.
The Moodle UI makes student section swaps look harmless. Done wrong, the student's submissions end up orphaned in Group A while they appear in Group B with a fresh (empty) gradebook. Always do section swaps through the SIS and let the meta-course sync handle the rest.
Step 5: Archive at term end
When the semester ends, archive the meta-course AND its children together. Don't archive just the parent — the child courses will continue showing up in teachers' course lists and confuse the next-term setup.
Key takeaways
- Meta-courses unify enrollment, not permissions. Groups handle section scoping.
- Create the parent first, then attach sections as enrollment methods.
- Late section swaps must go through the SIS — never edit Moodle directly.
- Archive parent AND children at term end.
Want Classeo to handle this automatically?
Demo shows your SIS fused into a clean Moodle meta-course structure in real time.
Book a Demo



