BilimClass
/install bilimclass
BilimClass — School Schedule, Homework & Grades
Access BilimClass API for Kazakhstan school data. Supports schedule, homework, and quarterly/yearly grades.
Setup
Two tokens required in ~/.openclaw/.env.json:
bilimclass.token— main JWT fromlocalStorage.token(RS256, valid ~1 year). Used for schedule and subject names.bilimclass.journalToken— journal JWT from API headers on grades page (HS512, expires ~2 weeks). Used for grades only.
Both expire — token annually, journalToken biweekly. To refresh journalToken:
- Open bilimclass.kz → grades section
- F12 → Network → find request to
journal-service.bilimclass.kz/diary - Copy the
Authorization: Bearer ...header value
To refresh main token: browser console → localStorage.token
Required config fields in .env.json:
{
"bilimclass": {
"token": "\x3CYOUR_TOKEN>",
"journalToken": "\x3CYOUR_JOURNAL_TOKEN>",
"schoolId": "\x3CYOUR_SCHOOL_ID>",
"eduYear": "\x3CEDUCATION_YEAR>",
"userId": "\x3CYOUR_USER_ID>",
"studentSchoolUuid": "\x3CYOUR_STUDENT_UUID>",
"studentGroups": [
{"uuid": "\x3CUUID>", "name": "Group name"},
{"uuid": "\x3CUUID>", "name": "Group name"}
]
}
}
studentGroups— all student groups for the user. The first one should be the current group for grades.
Quick Usage
python3 \x3Cskill_dir>/scripts/bilimclass.py schedule [DD.MM.YYYY]
python3 \x3Cskill_dir>/scripts/bilimclass.py diary [YYYY-MM-DD]
python3 \x3Cskill_dir>/scripts/bilimclass.py week [DD.MM.YYYY] # Monday of that week
python3 \x3Cskill_dir>/scripts/bilimclass.py grades \x3CYYYY-MM-DD> \x3CYYYY-MM-DD>
python3 \x3Cskill_dir>/scripts/bilimclass.py quarter-report [Q3|Q4]
python3 \x3Cskill_dir>/scripts/bilimclass.py today
python3 \x3Cskill_dir>/scripts/bilimclass.py tomorrow
All output is JSON — format it nicely for the user.
Schedule Format
Each day contains:
date_label— display date (e.g. "06 АПРЕЛЯ")schedule[]— lessons with:subject.label— subject namesubject.subjectId— integer ID (used for grade mapping)teacher— teacher full namehomework.body— homework texttime.label— time range (e.g. "08:00 - 08:40")
Diaries (Homework Detail)
Multiple student groups. The script iterates all studentGroups — it handles dedup automatically.
Grades
Grades use a separate service (journal-service.bilimclass.kz) with the journalToken.
API Endpoints
- Schedule + subject names:
https://api.bilimclass.kz/api/v4/os/clientoffice/schedule- Auth:
Bearer {token}(main JWT) - Headers:
X-School-Id,X-Localization: ru
- Auth:
- Grades:
https://journal-service.bilimclass.kz/diary- Auth:
Bearer {journalToken}(journal JWT) - Headers:
X-School-Id,X-Localization: ru,external: 1
- Auth:
How grades work
- Query
/diarywithschoolId,eduYear,userId,studentGroupUuid,date(ISO 8601) - Response is
{"data": {\x3CscheduleUuid>: {formattedScore, sor, soch, ...}}} - Each of
formattedScore/sor/sochcontains:mark— the score (integer)markMax— maximum (usually 10, sometimes 24 for СОЧ)subjectId— integer ID for mapping to subject namesdate,markType,comment
scheduleUuid(the key) is a UUID, not the same assubjectId- Subject names come from the schedule API — map via
subjectIdfrom lesson data
Grading scale (4th quarter rules)
- 5: ≥ 87%
- 4: ≥ 65%
- 3: ≥ 50%
- 2: \x3C 50%
Quarter date ranges (approximate for 2025-2026)
- Q3: January 8 — March 22
- Q4: March 31 — current date
Notes
- Some subjects may have no grades in a quarter if no assessments have been given yet
- Absent-due-to-illness marks use
markType: "sick"— exclude from percentage calculations - Always use the first
studentGroup(index 0) for current grades - journalToken expires ~every 2 weeks — check
401responses and prompt user to refresh - When reporting grades, sort alphabetically by subject name
- Always show: subject name, %, predicted grade, number of assessments
Notes
- Both APIs use
Bearer \x3Ctoken>style auth but with different tokens - Schedule API uses main token; Grades API uses journalToken
SUBJECT_NAMESdict is populated dynamically from schedule API — if subject name missing, showПредмет #{id}and note the gap
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install bilimclass - After installation, invoke the skill by name or use
/bilimclass - Provide required inputs per the skill's parameter spec and get structured output
What is BilimClass?
Access BilimClass school platform (Kazakhstan) for schedule, homework, grades, and diary via API. Triggers on schedule/raspisanie/расписание, homework/domash... It is an AI Agent Skill for Claude Code / OpenClaw, with 92 downloads so far.
How do I install BilimClass?
Run "/install bilimclass" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is BilimClass free?
Yes, BilimClass is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does BilimClass support?
BilimClass is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created BilimClass?
It is built and maintained by podberezovk (@podberezovk); the current version is v1.1.0.