本项目旨在帮助大学生将教务系统导出的课表文本,快速转换为可导入 Apple/Google/Outlook 等日历应用的 .ics 文件。支持 LLM 智能解析、课表预览、节次时间自定义等功能。
- 粘贴原始课表文本,一键解析为结构化课程数据
- 支持自定义每节课的开始时间、学期起始日、课时长度
- 解析结果可表格预览,确认无误后生成
.ics文件 - 支持自带 LLM API Key 或使用平台公用 Key
- 赞赏码弹窗鼓励支持开发者
timetable2ics/
├── web.py # Streamlit 网页主入口
├── data.py # 课表数据结构与生成逻辑
├── main.py # 示例/命令行入口
├── requirements.txt # 依赖列表
├── reward_wx.jpg # 赞赏码图片
├── parserics/ # 解析相关模块
│ ├── llm_parser.py # LLM 解析接口
│ ├── json_to_courses.py# JSON转Course工具
│ └── ...
├── image/ # 项目配图
│ ├── render.jpg # 效果图
│ └── apple.jpg # Apple Maps 说明图
├── usage.md # 导入/订阅日历说明
├── UESTC.ics # Apple Maps 示例
└── ...
建议使用 Python 3.8+,推荐虚拟环境:
pip install -r requirements.txt- 启动网页:
streamlit run web.py
- 在网页中:
- 粘贴你的课表文本
- (可选)填写 LLM API Key(如阿里云 DashScope Key),否则自动使用公用 Key
- 设置学期起始日、每节课时长、每节课开始时间
- 点击“解析课表”,预览无误后生成并下载
.ics文件
- 未填写 API Key 时,系统会自动弹出赞赏码,欢迎支持开发者!
- 公用 Key 仅供体验,建议长期使用时申请自己的 Key。
- 课表格式不标准/解析失败?
- 请尽量粘贴原始教务系统表格文本,或适当调整格式。
- 时间格式错误?
- 每节课时间请用
8:00这种格式填写。
- 每节课时间请用
- ics 文件导入失败?
- 请参考
usage.md或各大日历应用官方说明。
- 请参考
若你在 iPhone 上直接打开 .ics 文件仍无法添加到 Apple 日历,可以借助快捷指令完成导入。
- 阿里云通义千问 LLM 支持
- 参考自 python-ical-timetable 等开源项目
如有建议或问题,欢迎 Issue 或 PR!