课表与日历
schedule、calendar/events 与字段
路径未版本化
最后更新:2026-10-25
课表与日历
GET /api/schedule
认证:是。班级:必需。用途:返回指定周次的课表、本周日期和节次时间。
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
week | query | number | 第几周;不传或不在 1–30 范围内时回落当前周 |
class | query | string | 可选,班级 id 或 slug |
| 返回字段 | 说明 |
|---|---|
classId | 本次请求的班级 id |
termName / termStart | 学期名称、学期第 1 周周一日期(YYYY-MM-DD) |
periodTimes | 节次时间数组,元素形如 08:00-08:45 |
periodCount | 节次数(1–20) |
week / currentWeek / weekDates | 本次周次、当前周次、索引 1–7 的日期数组 |
todayWeekday | 1–7;查看非本周时为 0 |
courses / todayCourses / totalCourses | 本周课程、今天课程、全部课程数量 |
meta.classId / meta.isCurrentWeek | 班级 id、是否当前周 |
课程对象字段:id、name、teacher、location、weekday(1–7)、weekdayName、startPeriod、endPeriod、periodText、weeks、weekText、color。
curl -s "$BASE/api/schedule?week=9&class=demo-class" \
-H "Authorization: Bearer $TOKEN"
GET /api/calendar/events
认证:是。班级:必需。用途:返回已展开的手机日历事件(每次课 + 未完成待办),供 Android 端写入本地日历。
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
from | query | string | 可选,YYYY-MM-DD,按事件开始日期过滤 |
to | query | string | 可选,YYYY-MM-DD,按事件开始日期过滤 |
class | query | string | 可选,班级 id 或 slug |
{
"ok": true,
"data": {
"generatedAt": "2026-10-25T07:41:14.373Z",
"classId": 3,
"from": null,
"to": null,
"events": [
{
"uid": "class32601-c3-course-5-20261012",
"type": "course",
"title": "中国近现代史纲要",
"start": "2026-10-12T14:00:00+08:00",
"end": "2026-10-12T15:35:00+08:00",
"location": "教学楼 A-101",
"description": "教师:示例教师\n第 5-6 节\n1-16 周",
"color": "#8B5CF6"
},
{
"uid": "class32601-c3-todo-55",
"type": "todo",
"title": "待办:交实验报告",
"start": "2026-10-30T23:59:00+08:00",
"end": "2026-10-31T00:29:00+08:00",
"location": "",
"description": "周四前交到学习委员处\n班级待办\n截止 10-30 23:59",
"color": "#F59E0B"
}
]
}
}
uid是稳定标识,格式随多班级增加班级 id 段;Android 端按 UID 做增/改/删,不应自行生成。- 课程事件从学期第 1 周展开到课程最大周次;待办事件只包含未完成待办,
source_key以course:开头的自动待办不写入日历。 - 没有开始时间、只有结束时间的待办,事件从结束时间开始并占 30 分钟;开始/结束至少填一个。
- 响应额外设置
Cache-Control: no-store。