⚠️ Disclaimer / Haftungsausschluss:English: This project is not an official Untis product and is not affiliated with, endorsed by, or supported by Untis GmbH or any of its subsidiaries. WebUntis is a registered trademark of Untis GmbH. The software is provided without warranty, including accuracy, completeness, or error-free operation of displayed WebUntis data. Use is at your own risk.
Deutsch: Dieses Projekt ist kein offizielles Untis-Produkt und steht in keiner Verbindung zu Untis GmbH oder deren Tochtergesellschaften; es wird nicht von Untis unterstützt oder empfohlen. WebUntis ist eine eingetragene Marke der Untis GmbH. Die Software wird ohne Gewähr bereitgestellt; insbesondere wird keine Haftung für Fehlerfreiheit sowie für Vollständigkeit, Aktualität oder Richtigkeit der angezeigten WebUntis-Daten übernommen. Die Nutzung erfolgt auf eigene Gefahr.
⚠️ Important Notice:This project contains substantial AI-generated code. Review, test, and audit all files, web UI, and documentation before using it in production or safety-relevant contexts. Treat defaults and generated logic as untrusted until verified.
A MagicMirror² module that displays WebUntis timetables, exams, homework, absences, and messages of day.
- Node.js
>=20.18.1
Older Node 20 installations have shown authentication and runtime failures in real-world setups, especially around the module's native HTTP stack. If direct login or QR login suddenly stops working, update Node first and then run npm ci --omit=dev again.
cd ~/MagicMirror/modules
git clone --recurse-submodules https://github.com/HeikoGr/MMM-Webuntis
cd MMM-Webuntis
npm ci --omit=devThe module depends on the lib/mmm-shared git submodule. npm ci normally fetches it for you, but
cloning with --recurse-submodules makes that explicit. If the module fails to start with a
Cannot find module './lib/mmm-shared/mmm-shared' error, run:
git submodule update --init --recursivecd ~/MagicMirror/modules/MMM-Webuntis
git pull --recurse-submodules
npm ci --omit=devA minimal QR-code setup looks like this:
{
module: 'MMM-Webuntis',
position: 'top_right',
config: {
displayMode: 'grid, lessons, exams',
students: [
{
title: 'Alice',
qrcode: 'untis://setschool?url=myschool.webuntis.com&school=myschool&user=alice&key=ABC123...',
},
],
},
},User-facing setup and configuration documentation now lives in the project wiki:
Want to see the module without WebUntis credentials? Set demoDataFile: 'demo/fixtures/single-student-week.json'
in your config to render a synthetic school week offline — see demo/fixtures/README.md.
Technical background documentation remains in docs/:
- docs/API_V3_MANIFEST.md
- docs/API_REFERENCE.md
- docs/SERVER_REQUEST_FLOW.md
- docs/ARCHITECTURE.md
- docs/CSS_CUSTOMIZATION.md
- docs/CLI.md
- config/config.template.js
Week view (grid):
List view (lessons + exams):
- Issues: GitHub Issues
- Documentation: start with the project wiki
- Logs: enable
logLevel: 'debug'in your config
MIT License - See LICENSE
Note: This module contains AI-generated code. Review and test thoroughly before production use.

