Kurse anlegen
Einen einzelnen Kurs legen Sie über ein Formular an. Für ein ganzes Schuljahr auf einmal laden Sie stattdessen eine CSV-Datei hoch, die alle Kurse in einem Durchgang erzeugt.
Voraussetzung: Moderator/innen-Rechte. Trainer/innen können in ihren Kursen arbeiten, aber keine neuen anlegen. Ist die Kursbeantragung eingeschaltet, stellen sie stattdessen einen Antrag, der unter Ausstehende Kursanfragen bestätigt wird.
Einzelnen Kurs anlegen
- Website-Administration öffnen und den Reiter Kurse wählen.
- Auf Neuen Kurs anlegen klicken.
- Die Pflichtfelder ausfüllen: Vollständiger Kursname, Kurzer Kursname und Kursbereich.
- Bei Bedarf Kursbeginn und Kursende setzen.
- Unten auf Speichern und anzeigen klicken. Moodle führt anschließend direkt zur Einschreibung der Teilnehmenden.

Die drei Pflichtfelder
| Feld | Wofür es zählt |
|---|---|
| Vollständiger Kursname | Der Name, der in Kurslisten und in der Kopfzeile des Kurses steht. Er darf sich wiederholen. |
| Kurzer Kursname | Die Kennung des Kurses. Sie steht in der Navigationsleiste und muss auf der ganzen Plattform eindeutig sein. Auch der CSV-Upload und die Nutzerliste sprechen Kurse darüber an. |
| Kursbereich | Der Ordner, in dem der Kurs liegt. Kursbereiche legen Sie im Reiter Kurse unter Kursbereich hinzufügen an. |

Hinweis: Kursbeginn steuert mehr als das Datum in der Übersicht. Vor diesem Datum erscheint der Kurs bei den Teilnehmenden unter Meine Kurse im Reiter Zukünftig, im Wochenformat bestimmt er außerdem die Beschriftung des ersten Abschnitts. Kursende schiebt den Kurs danach nach Vergangen, sperrt ihn aber nicht.
Mehrere Kurse per CSV hochladen
- Website-Administration öffnen und den Reiter Kurse wählen.
- Auf Kursliste hochladen klicken.
- Die CSV-Datei in das Feld ziehen oder über Datei wählen … hochladen.
- CSV-Trennzeichen und Kodierung prüfen (siehe Kasten unten).
- Auf Vorschau klicken. Moodle zeigt die eingelesenen Zeilen und meldet, was es an jeder Zeile auszusetzen hat.
- Unter Importoptionen den Modus beim Hochladen wählen und mit Kursliste hochladen bestätigen.

Achtung beim Trennzeichen: Auf deutschsprachiger Oberfläche steht CSV-Trennzeichen voreingestellt auf ;, weil das deutsche Sprachpaket das Semikolon als Listentrenner führt. Ist Ihre Datei mit Komma getrennt (so wie die Beispiele unten), stellen Sie das Feld auf , um. Speichern Sie aus Excel heraus als CSV UTF-8, sonst landen Umlaute in den Kursnamen als Zeichensalat.
Aufbau der CSV-Datei
Die erste Zeile enthält die Spaltennamen, jede weitere Zeile einen Kurs. Zwei Angaben verlangt Moodle in jeder Zeile: den vollständigen Namen und den Kursbereich. Dazu kommt der kurze Kursname als Schlüssel der Zeile:
shortname,fullname,category_path BIO-7A,Biologie 7a,Sekundarstufe I / Naturwissenschaften BIO-7B,Biologie 7b,Sekundarstufe I / Naturwissenschaften
Für den Kursbereich gibt es drei Spalten, von denen Sie eine benutzen:
| Spalte | Bedeutung |
|---|---|
category_path |
Der Pfad aus Bereichsnamen, vom obersten zum untersten. Getrennt wird mit Leerzeichen, Schrägstrich, Leerzeichen: Sekundarstufe I / Naturwissenschaften. Der lesbare Weg. |
category_idnumber |
Die Kennzahl, die im Kursbereich unter Kursbereichs-ID hinterlegt ist. Bleibt gültig, auch wenn der Bereich umbenannt wird. |
category |
Die interne Nummer des Kursbereichs, wie sie in der Adresszeile von Kurse und Kursbereiche verwalten steht. |
Häufig genutzte weitere Spalten:
| Spalte | Bedeutung |
|---|---|
idnumber |
Kurs-ID, z. B. das Kürzel aus Ihrem Schulverwaltungsprogramm. |
summary |
Kursbeschreibung. HTML ist erlaubt. |
format |
Kursformat als Kurzname: topics, weeks, singleactivity, social. |
startdate, enddate |
Kursbeginn und Kursende, als Datum im Format 2026-08-24. |
visible |
1 zeigt den Kurs, 0 verbirgt ihn vor den Teilnehmenden. |
lang |
Erzwungene Kurssprache als Sprachcode, z. B. de. |
groupmode |
0 keine Gruppen, 1 getrennte Gruppen, 2 sichtbare Gruppen. |
maxbytes |
Maximale Dateigröße in Bytes. |
enablecompletion |
1 schaltet die Abschlussverfolgung ein. |
Hinweis: Fehlt eine Spalte, greift der Wert, der auf der Vorschauseite unter Standardwerte für Kurseinstellungen steht. Was Sie für alle Kurse gleich haben wollen, gehört deshalb nicht in die Datei, sondern dorthin.
Einschreibemethoden gleich mitanlegen
Die CSV richtet Einschreibemethoden ein. Einzelne Personen benennt sie nicht: dafür ist die Nutzerliste mit ihren Spalten course1 und role1 zuständig. Zwei Methoden bringen ihre Teilnehmenden allerdings selbst mit, siehe den Abschnitt darunter. Die Spalten sind durchnummeriert, enrolment_1 nennt das Plugin, die Spalten mit angehängtem Namen setzen dessen Einstellungen:
shortname,fullname,category_path,enrolment_1,enrolment_1_role BIO-7A,Biologie 7a,Sekundarstufe I / Naturwissenschaften,self,student BIO-7B,Biologie 7b,Sekundarstufe I / Naturwissenschaften,self,student
enrolment_1ist der Kurzname des Plugins. Der Upload nimmt fünf davon an:manualfür die manuelle Einschreibung,selffür die Selbsteinschreibung,guestfür den Gastzugang,cohortfür die globale Gruppe undmetafür die Meta-Einschreibung. Andere Plugins überspringt er stillschweigend.enrolment_1_rolenennt die Rolle als Kurzname, meiststudent.enrolment_1_passwordsetzt den Einschreibeschlüssel der Selbsteinschreibung.enrolment_1_enrolperiodbegrenzt die Teilnahmedauer. Zulässig sind Sekunden (2592000) oder eine englische Zeitangabe (30 days).enrolment_1_startdateundenrolment_1_enddatebegrenzen den Zeitraum, in dem die Methode greift, als Datum im Format2026-08-24.enrolment_1_deletemit dem Wert1entfernt die Methode wieder,enrolment_1_disableschaltet sie nur ab.
Wenn die Methode ihre Teilnehmenden mitbringt
Achtung: Bei zwei Plugins bleibt es nicht bei der leeren Methode. Globale Gruppe (cohort) und Meta-Einschreibung (meta) gleichen ihren Bestand ab, sobald die Methode angelegt ist, nicht erst beim nächsten Cron-Lauf. Wer in der globalen Gruppe steht oder im verknüpften Kurs eingeschrieben ist, ist damit sofort auch hier eingeschrieben. Eine einzige CSV-Zeile kann auf diesem Weg mehrere hundert Konten in einen Kurs bringen.
Für Klassen, die als globale Gruppe gepflegt werden, ist genau das der schnellste Weg: Kurs und Klassenliste entstehen in einem Durchgang.
shortname,fullname,category_path,enrolment_1,enrolment_1_cohortidnumber,enrolment_1_role BIO-7A,Biologie 7a,Sekundarstufe I / Naturwissenschaften,cohort,KL-7A,student BIO-7B,Biologie 7b,Sekundarstufe I / Naturwissenschaften,cohort,KL-7B,student
enrolment_1_cohortidnumberist Pflicht und meint die Globale Gruppen-ID, nicht den Namen der Gruppe. Sie steht in der Website-Administration unter Nutzer/innen → Globale Gruppen. Findet Moodle die Kennung nicht, meldet die Vorschau die Zeile als Fehler und legt den Kurs nicht an.enrolment_1_roleist hier ebenfalls Pflicht. Moodle erkennt die Methode an der Kombination aus globaler Gruppe und Rolle, deshalb kann derselbe Kurs mehrere globale Gruppen mit verschiedenen Rollen führen.enrolment_1_addtogroupsteuert die Gruppe im Kurs:0legt keine an,1legt eine neue Gruppe mit dem Namen der globalen Gruppe an. Statt dessen nenntenrolment_1_groupnameeine Gruppe, die es im Kurs schon gibt.- Bei der Meta-Einschreibung tritt an die Stelle der Kennung die Spalte
enrolment_1_metacoursenamemit dem kurzen Kursnamen des Kurses, aus dem die Teilnehmenden kommen.
Hinweis: Beide Methoden müssen dafür plattformweit eingeschaltet sein (Website-Administration → Plugins → Einschreibung → Übersicht). Globale Gruppe ist ab Werk aktiv, Meta-Einschreibung nicht. Bei abgeschaltetem Plugin legt der Upload die Methode zwar an, sie bleibt aber wirkungslos, bis das Plugin eingeschaltet wird.
Die Verbindung bleibt danach bestehen: Wer später aus der globalen Gruppe entfernt wird, verliert den Kurs wieder. Was dabei genau geschieht, steht in den Einstellungen des Plugins unter Externer Abmeldevorgang. Ab Werk wird die Person ausgetragen, wahlweise bleibt sie gesperrt im Kurs stehen. Wer Teilnehmende einzeln nachpflegen will, nimmt die manuelle Einschreibung dazu.
Modus beim Hochladen
Der Modus entscheidet, was mit Zeilen geschieht, deren kurzer Kursname es schon gibt.
| Option | Wirkung |
|---|---|
| Neue Kurse anlegen und vorhandene überspringen | Der sichere Standardfall: bestehende Kurse bleiben unangetastet. |
| Alle Kurse anlegen, Kurznamen bei Bedarf inkrementieren | Erzeugt bei Namensgleichheit BIO-7A_2. Nur in Sonderfällen sinnvoll. |
| Neue Kurse anlegen oder vorhandene aktualisieren | Legt fehlende Kurse an und ändert vorhandene nach dem Aktualisierungsmodus. |
| Nur vorhandene Kurse aktualisieren | Legt nichts Neues an. Geeignet für Sammeländerungen, z. B. neue Anfangsdaten zum Schuljahr. |

Sobald ein Modus das Aktualisieren erlaubt, erscheinen vier weitere Felder. Aktualisierungsmodus steht dabei auf Keine Änderung, solange Sie ihn nicht umstellen: Der Upload läuft dann durch, ohne etwas zu ändern.
- Aktualisierungsmodus: Nur mit CSV-Daten aktualisieren übernimmt genau die Spalten der Datei. Mit CSV-Daten und Standardwerten aktualisieren überschreibt zusätzlich alles, was oben unter Standardwerte steht. Fehlende Angaben aus CSV-Daten und Standardwerten ergänzen füllt nur leere Felder und lässt Gesetztes stehen.
- Löschung erlauben: lässt die Spalte
deletezu, mit der eine Zeile ihren Kurs löscht. - Umbenennung erlauben: lässt die Spalte
renamezu, die den kurzen Kursnamen ändert. Der bisherige Name steht dann inshortname, der neue inrename. - Zurücksetzen erlauben: lässt die Spalte
resetzu, die den Kurs zurücksetzt und dabei Nutzerdaten entfernt.
Achtung: Löschung erlauben und Zurücksetzen erlauben wirken sofort und ohne Rückfrage auf jede Zeile, die die passende Spalte trägt. Moodle legt vorher keine Sicherung an. Lassen Sie beide auf Nein, solange Sie sie nicht wirklich brauchen.
Kurse aus einer Vorlage erzeugen
Auf der Vorschauseite steht unter Kurs-Prozess zweierlei, womit die neuen Kurse nicht leer bleiben:
- Wiederherstellen dieses Kurses nach dem Upload: der kurze Kursname eines vorhandenen Kurses. Jeder neue Kurs bekommt dessen Inhalte.
- Aus dieser Datei nach dem Upload wiederherstellen: dasselbe aus einer hochgeladenen Sicherungsdatei (
.mbz).
Je Zeile geht das auch: die Spalte templatecourse nennt den Vorlagenkurs, backupfile den Pfad einer Sicherung. Übertragen werden dabei nur Inhalte, keine Nutzerdaten und keine Einschreibungen.
Tipps
- Legen Sie die Kursbereiche an, bevor Sie hochladen. Ein Pfad, der sich nicht auflösen lässt, macht aus der Zeile einen Fehler statt einen Kurs.
- Vergeben Sie kurze Kursnamen nach einem festen Schema, etwa Fachkürzel plus Klasse plus Schuljahr (
BIO-7A-2627). Ohne das Schuljahr steht der Name im nächsten Jahr nicht mehr zur Verfügung. - Testen Sie jede neue Datei zuerst mit zwei, drei Zeilen. Die Vorschau meldet Fehler zwar zuverlässig, aber 60 versehentlich angelegte Kurse sind mühsam zu bereinigen.
- Gelöschte Kurse sind weg, samt Beiträgen und Bewertungen. Zum Ausblenden nach Schuljahresende genügt Kurssichtbarkeit auf Verbergen.