webuntis
Read-only access to Untis/WebUntis student timetables.
Setup & Installation
Install command
clawhub install finnbusse/webuntisIf the CLI is not installed:
Install command
npx clawhub@latest install finnbusse/webuntisOr install with OpenClaw CLI:
Install command
openclaw skills install finnbusse/webuntisor paste the repo link into your assistant's chat
Install command
https://github.com/openclaw/skills/tree/main/skills/finnbusse/webuntisWhat This Skill Does
Fetches student timetables from WebUntis/Untis school scheduling systems via JSON-RPC. Returns lessons, rooms, teachers, and substitutions for a given date or range. Supports multiple school profiles in parallel.
Pulls live timetable data directly from the school's WebUntis instance instead of requiring manual lookup through the web interface or app.
When to Use It
- Check today's class schedule before heading to school
- Look up which room a class is in tomorrow
- Find out who is substituting for a teacher this week
- Get the full timetable for a specific date range
- Compare schedules across two student profiles at different schools
View original SKILL.md file
# WebUntis (Untis) timetable
Use the bundled script to log in and fetch the timetable via JSON-RPC.
## Security / credentials
- **Do not** ask the user to paste passwords into chat.
- Prefer a **dedicated read-only student account** if the school allows it.
- Credentials must be provided via environment variables (or injected securely by the operator).
Single profile:
- `WEBUNTIS_BASE_URL` (e.g. `https://xyz.webuntis.com`)
- `WEBUNTIS_SCHOOL` (school name / key used by WebUntis)
- `WEBUNTIS_USER`
- `WEBUNTIS_PASS`
- Optional: `WEBUNTIS_ELEMENT_TYPE` (default `5` = student)
- Optional: `WEBUNTIS_ELEMENT_ID` (if auto-detect fails)
Multiple profiles (parallel):
- Set `WEBUNTIS_PROFILE=<name>` or pass `--profile <name>`
- Provide env vars prefixed by the profile name, e.g. for profile `cdg`:
- `WEBUNTIS_CDG_BASE_URL`
- `WEBUNTIS_CDG_SCHOOL`
- `WEBUNTIS_CDG_USER`
- `WEBUNTIS_CDG_PASS`
- optional: `WEBUNTIS_CDG_ELEMENT_TYPE`, `WEBUNTIS_CDG_ELEMENT_ID`
## Quick commands (exec)
Today:
```bash
cd skills/webuntis/scripts
./webuntis.py today
# or pick a profile
./webuntis.py --profile cdg today
```
Range:
```bash
cd skills/webuntis/scripts
./webuntis.py range 2026-02-10 2026-02-14
```
## Troubleshooting
If you get "Could not determine element-id":
1) Run once and capture the error.
2) Add `WEBUNTIS_ELEMENT_ID=<number>` and retry.
If auth fails:
- Verify `WEBUNTIS_BASE_URL` is correct for your school.
- Verify `WEBUNTIS_SCHOOL` matches the school key used by WebUntis.
## Output
The script prints one line per lesson/event:
`YYYY-MM-DD HH:MM-HH:MM · <subject> · Raum <room> · bei <teacher>`
Example Workflow
Here's how your AI assistant might use this skill in practice.
User asks: Check today's class schedule before heading to school
- 1Check today's class schedule before heading to school
- 2Look up which room a class is in tomorrow
- 3Find out who is substituting for a teacher this week
- 4Get the full timetable for a specific date range
- 5Compare schedules across two student profiles at different schools
Read-only access to Untis/WebUntis student timetables.
Security Audits
These signals reflect official OpenClaw status values. A Suspicious status means the skill should be used with extra caution.