WebUntis 课表:获取学生日程 - Openclaw Skills

作者:互联网

2026-03-30

AI教程

什么是 WebUntis 课表集成?

此技能在 AI 智能体与 WebUntis 学生信息系统之间建立了无缝桥梁。通过利用 JSON-RPC API,Openclaw Skills 可以以编程方式访问实时课表数据,包括教室位置、教师分配和代课更新。它被设计为一个安全的只读接口,在尊重用户隐私的同时提升学生的生产力。

无论您是需要检查今天的课程还是规划未来一周,此集成都允许您的 AI 智能体从任何 WebUntis 实例拉取实时数据。该技能处理身份验证和数据解析,提供整洁、易读的格式,非常适合智能体工作流。

下载入口:https://github.com/openclaw/skills/tree/main/skills/finnbusse/webuntis

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install webuntis

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 webuntis。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

WebUntis 课表集成 应用场景

  • 概览并总结学生的每日日程或即将到来的一周安排。
  • 实时检查教室变更或代课课程。
  • 识别特定教师或时间段,用于学术规划和任务管理。
  • 基于官方学校数据自动更新个人日历或提醒。
WebUntis 课表集成 工作原理
  1. AI 智能体触发位于 scripts 目录中的捆绑 Python 脚本,并带有特定参数(如 today 或日期范围)。
  2. 脚本使用环境提供的安全凭据向目标 WebUntis 服务器进行身份验证。
  3. 向学校特定的 WebUntis 实例发送 JSON-RPC 请求,以获取相关的课表元素。
  4. 该技能解析复杂的 API 响应,并输出标准化的、人类可读的列表,供智能体处理并展示给用户。

WebUntis 课表集成 配置指南

要在您的 Openclaw Skills 集合中开始使用此技能,请先配置环境变量:

export WEBUNTIS_BASE_URL="https://xyz.webuntis.com"
export WEBUNTIS_SCHOOL="your-school-key"
export WEBUNTIS_USER="your-username"
export WEBUNTIS_PASS="your-password"

直接运行脚本以验证连通性:

cd skills/webuntis/scripts
./webuntis.py today

WebUntis 课表集成 数据架构与分类体系

该技能将课表数据组织成一致的、逐行的文本格式。这种结构允许 Openclaw Skills 轻松提取用于调度任务的关键元数据。

数据点 示例格式
日期 YYYY-MM-DD
时间段 HH:MM-HH:MM
学科 数学
地点 101 教室
教师 史密斯先生
name: webuntis
description: Read-only access to Untis/WebUntis student timetables. Use when you need to fetch or summarize a student's current schedule (today/this week/date range), upcoming lessons, rooms, teachers, or substitutions from a WebUntis instance.

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= or pass --profile
  • 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:

cd skills/webuntis/scripts
./webuntis.py today

# or pick a profile
./webuntis.py --profile cdg today

Range:

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= 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 · · Raum · bei