Install
openclaw skills install wilmaAccess Finland's Wilma school system from AI agents. Fetch schedules, homework, exams, grades, attendance/lesson notes (merkinnät), messages, and news via the wilma CLI. Start with `wilma summary --json` for a full daily briefing, or drill into specific data with individual commands.
openclaw skills install wilmaWilma is the Finnish school information system used by schools and municipalities to share messages, news, exams, schedules, homework, and other student-related updates with parents/guardians.
Use the wilma / wilmai CLI in non-interactive mode to retrieve Wilma data for AI agents. Prefer --json outputs and avoid interactive prompts.
npm i -g @wilm-ai/wilma-cli
~/.config/wilmai/config.json.--json.wilma summary --student <id|name> --json
wilma summary --all-students --json
Returns today's and tomorrow's schedule, upcoming exams, recent homework, recent news, and recent messages in one call. This is the best starting point for any parent-facing summary.
wilma schedule list --when today --student <id|name> --json
wilma schedule list --when tomorrow --student <id|name> --json
wilma schedule list --when week --student <id|name> --json
wilma schedule list --date 2026-03-10 --student <id|name> --json
wilma schedule list --weekday thu --student <id|name> --json
--weekday also accepts Finnish short forms: ma, ti, ke, to, pe, la, su. Use --date or --weekday, not both.
wilma homework list --student <id|name> --json
wilma exams list --student <id|name> --json
wilma grades list --student <id|name> --json
wilma attendance list --student <id|name> --json
wilma attendance list --date 2026-03-10 --student <id|name> --json
wilma attendance list --all-students --json
Returns Wilma's per-lesson notes ("merkinnät") for a single day: positive feedback, behavioral remarks, missing materials, and absence categorizations (medical, explained, unexplained). Defaults to today if --date is omitted; teachers usually fill notes during or after class, so for a morning agent run prefer --date <yesterday>.
Each note has start/end times derived from Wilma's hour-grid headers — accurate to the lesson hour, with 45-minute period assumed. subject is the Wilma course code (e.g. MA_8LV = math, 8th grade), and typeLabel is the human-readable Finnish reason or remark.
wilma kids list --json
wilma news list --student <id|name> --json
wilma news read <id> --student <id|name> --json
wilma messages list --student <id|name> --folder inbox --json
wilma messages read <id> --student <id|name> --json
All list commands support --all-students:
wilma summary --all-students --json
wilma homework list --all-students --json
wilma exams list --all-students --json
You can also pass a name fragment for --student (fuzzy match).
If the Wilma account has MFA/TOTP enabled:
Interactive setup (recommended): Run wilma interactively. When MFA is detected, choose "Save TOTP secret for automatic login" and paste your TOTP secret or otpauth:// URI. Future logins will auto-authenticate.
Non-interactive (one-off): Pass the TOTP secret directly:
wilma schedule list --totp-secret <base32-key> --student "Stella" --json
wilma schedule list --totp-secret 'otpauth://totp/...' --student "Stella" --json
If the TOTP secret has been saved via interactive setup, --totp-secret is not needed — the CLI auto-authenticates from the stored config.
--student is provided, the CLI uses the last selected student from ~/.config/wilmai/config.json (or $XDG_CONFIG_HOME/wilmai/config.json).--student is required for read commands.wilma interactively or use wilma config clear to reset.wilma update to update the CLI to the latest version.Wilma contains a mix of urgent items and general info. When summarizing for parents, prioritize actionable items:
Include items that:
De-prioritize items that:
When in doubt, include and let the parent decide. Prefer a short, structured summary with dates and IDs.
Use scripts/wilma-cli.sh for a stable wrapper around the CLI.