/install ebusy-courts
eBusy Courts Skill
This skill wraps a small Python client (ebusy_api.py) to log into
eBusy-based booking systems and fetch reservations for a given
court-module and date.
It is designed to work with multiple halls by switching configuration via environment variables. All hall- and user-specific values are provided by the environment, not hard-coded in the skill.
Important: No usernames/passwords should be committed into this skill folder. Keep real credentials in a local
.env, your shell environment, or OpenClaw's gateway config.
Files
skills/ebusy-courts/ebusy_api.py– core Python clientskills/ebusy-courts/SKILL.md– this documentation
Optional (local-only, do not publish):
skills/.env– local environment file with hall-specific credentials
Python client: ebusy_api.py
The client is written to be generic; it reads all hall-specific config from environment variables:
EBUSY_BASE_URL # e.g. https://myclub.ebusy.de
EBUSY_USERNAME # login user for the chosen hall
EBUSY_PASSWORD # login password for the chosen hall
EBUSY_COURT_ID # eBusy court-module id for this hall
EBUSY_FIRST_COURT_NO # first court number inside that module
Usage (in a venv with requests + beautifulsoup4 installed):
source venv/bin/activate
export EBUSY_BASE_URL="https://myclub.ebusy.de"
export EBUSY_USERNAME="\x3Cyour-user>"
export EBUSY_PASSWORD="\x3Cyour-password>"
export EBUSY_COURT_ID="\x3Cmodule-id>"
export EBUSY_FIRST_COURT_NO="\x3Cfirst-court-no>"
python skills/ebusy-courts/ebusy_api.py 03/07/2026
The script will:
-
Log into the configured eBusy instance using the configured username/password.
-
Fetch the reservations JSON for the given date.
-
Print a sorted list of reservations:
Reservierung Platz 1: 09:00 - 10:00 von \x3CText> Reservierung Platz 2: 10:00 - 11:00 von \x3CText> ...
Example hall profiles
This section shows example configurations for two real halls in Germany. Other users can copy the pattern and plug in their own club URLs and module IDs.
Example: Medenhalle Wiesbaden-Medenbach
- Base URL:
https://medenhalle.ebusy.de EBUSY_COURT_ID = 1EBUSY_FIRST_COURT_NO = 1- Credentials typically provided via:
MEDENHALLE_USERMEDENHALLE_PASSWORD
Example shell setup:
source venv/bin/activate
# load your local secrets, e.g. from skills/.env
export EBUSY_BASE_URL="https://medenhalle.ebusy.de"
export EBUSY_USERNAME="$MEDENHALLE_USER"
export EBUSY_PASSWORD="$MEDENHALLE_PASSWORD"
export EBUSY_COURT_ID="1"
export EBUSY_FIRST_COURT_NO="1"
python skills/ebusy-courts/ebusy_api.py 03/07/2026
Example: KTEV Kelkheim
- Base URL:
https://ktev.ebusy.de EBUSY_COURT_ID = 807EBUSY_FIRST_COURT_NO = 2135- Credentials typically provided via:
KTEV_USERKTEV_PASSWORD
Example shell setup:
source venv/bin/activate
# load your local secrets, e.g. from skills/.env
export EBUSY_BASE_URL="https://ktev.ebusy.de"
export EBUSY_USERNAME="$KTEV_USER"
export EBUSY_PASSWORD="$KTEV_PASSWORD"
export EBUSY_COURT_ID="807"
export EBUSY_FIRST_COURT_NO="2135"
python skills/ebusy-courts/ebusy_api.py 03/07/2026
How an agent can use this skill
When a user asks for availability in a given hall (e.g. "Suche freie Zeiten in der Tennishalle XYZ am Sonntag"), an OpenClaw agent can:
- Map the hall name to a profile (base URL, module id, first-court-no),
either from
TOOLS.mdor agent-specific config. - Ensure the environment variables
EBUSY_*are set for that hall (credentials supplied by the runtime orskills/.env). - Call
ebusy_api.pyfor the relevant date, parse the JSON, and build an availability table (free vs booked) per court and time slot.
The decision logic (which profile to choose for which user request)
should live in the agent and/or TOOLS.md, not in this skill's code.
Publishing considerations
- Do not publish
skills/.envor any file containing real credentials to ClawHub. - Ensure
.gitignoreexcludesskills/.envand similar secret-bearing files. - The skill itself (this
SKILL.md+ebusy_api.py) contains only generic logic and non-secret configuration; the example profiles are illustrative and can be replaced by any other eBusy-based club.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install ebusy-courts - 安装完成后,直接呼叫该 Skill 的名称或使用
/ebusy-courts触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Ebusy Courts 是什么?
Query eBusy-based tennis hall bookings via a small Python client. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 274 次。
如何安装 Ebusy Courts?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install ebusy-courts」即可一键安装,无需额外配置。
Ebusy Courts 是免费的吗?
是的,Ebusy Courts 完全免费(开源免费),可自由下载、安装和使用。
Ebusy Courts 支持哪些平台?
Ebusy Courts 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Ebusy Courts?
由 ogruenig(@ogruenig)开发并维护,当前版本 v1.0.0。