webuntis

Web & Frontend Development
v1.0.1
Benign

Read-only access to Untis/WebUntis student timetables.

2679 downloads679 installsby @finnbusse

Setup & Installation

Install command

clawhub install finnbusse/webuntis

If the CLI is not installed:

Install command

npx clawhub@latest install finnbusse/webuntis

Or install with OpenClaw CLI:

Install command

openclaw skills install finnbusse/webuntis

or paste the repo link into your assistant's chat

Install command

https://github.com/openclaw/skills/tree/main/skills/finnbusse/webuntis

What 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.

INPUT

User asks: Check today's class schedule before heading to school

AGENT
  1. 1Check today's class schedule before heading to school
  2. 2Look up which room a class is in tomorrow
  3. 3Find out who is substituting for a teacher this week
  4. 4Get the full timetable for a specific date range
  5. 5Compare schedules across two student profiles at different schools
OUTPUT
Read-only access to Untis/WebUntis student timetables.

Share this skill

Security Audits

VirusTotalBenign
OpenClawBenign
View full report

These signals reflect official OpenClaw status values. A Suspicious status means the skill should be used with extra caution.

Details

LanguageMarkdown
Last updatedFeb 28, 2026