日程表 Timetable

把日程和课表,
放回你自己的设备里

一个本地优先的日程 / 课程表工具。数据全部存在你自己的设备上 —— 不注册、不登录、不上传、没有云。电脑上它是一块飘在桌面上的气泡区,手机上是同一套界面。

免安装 · 断网也能开 · 手机上可「添加到主屏幕」当 App 用 · 当前版本 v0.12.1

它能做什么

不是又一个"云日历",而是一块一直看得见的时间。

桌面气泡区

今天、明天要上的课和快到期的日程飘在桌面上:大小 = 还剩多久,颜色 = 事情多大。可拖动、可折叠、可点开看细节。

闹钟与计时器

一次性 / 每天 / 工作日 / 自定义重复,配不同的铃声;还有倒计时(想专注 25 分钟就拧一下)。

课程表

单双周、多节连堂、按周次范围显示(第 3–17 周的课不会在第 1 周就跑出来)。自己手加,或粘贴一份标准 JSON。

月历与列表

重复日程、倒数日、标签、颜色、回收站;逾期的事会自己浮上来,不用你去翻。

导出与分享

把某一天分享成图片,或导出 .ics 日历文件,塞进手机自带的日历 App。

离线 / 深色 / 极简

装成 PWA 之后断网也能打开;深色跟随系统或手动切;字号三档;还有一套把装饰全去掉的极简样式。

截图

下面是这套界面的真实截图(不是效果图)。

桌面气泡区:今天和明天的日程飘在桌面上
桌面气泡区:大小是剩余时间,颜色是紧迫程度
课程表网格
课程表:单双周、连堂、按周次范围
月历视图
月历:重复日程、倒数日、标签
闹钟与计时器
闹钟与计时器
手机上的样子
手机上:可以装到主屏幕当 App

三种打开方式

先试网页版最快;想要系统级闹钟和桌面气泡,再装 App。

方式怎么开始说明
网页版推荐先试 打开 timetable-pwa.pages.dev 不用下载。手机上用浏览器打开后「添加到主屏幕」,图标和 App 一样,断网也能开。
安卓 App 下载 Timetable-Android-0.12.1.apk
4.44 MB · 已下载 4 次
装完是独立 App,可以用系统闹钟在到点时响;安装包用固定密钥签名,以后的新版本能直接覆盖安装。
电脑 / iOS 看仓库里的 README 电脑上跑需要 Node.js 22(不用 npm install,这个项目运行时零依赖);iOS 目前是未签名包,得用 SideStore / AltStore 这类工具自己装。

手机装到主屏幕:iPhone 用 Safari 打开 → 分享 → 添加到主屏幕;安卓用 Chrome 打开 → 右上角 ⋮ → 安装应用 / 添加到主屏幕。

开发者

源码全部公开(MIT 许可),运行时零依赖 —— 不装任何第三方库,也不用 npm install。

端下载源码解开后说明
网页版 / 电脑版timetable-web-pc-v0.12.1-src.zip 1.13 MB162 个文件本机那台 Node 服务 + 网页界面 + 桌面气泡的 C# 源。
安卓timetable-android-v0.12.1-src.zip 1.20 MB180 个文件Kotlin 原生壳(WebView + 本机服务 + 系统闹钟)+ 共用的 web/ 与 core/。
iOStimetable-ios-v0.12.1-src.zip 3.39 MB185 个文件Swift 原生壳(WebKit + AlarmKit)+ 共用的 web/ 与 core/。

三个包一共 5.72 MB;内容就是从公开树(node tools/export-public.mjs 的产物)里导出的,所以网页版跑的就是你下到的这一份代码。

  • core/ 是平台无关的纯逻辑 —— 重复规则、提醒排程、逾期判断、气泡选择,没有一行碰浏览器或系统 API,Node 与网页版共用同一份。
  • web/ 是界面(原生 ESM + 手写 CSS,没有框架、没有构建步骤),server/ 是电脑上那个只监听本机的 HTTP 服务。
  • 安卓与 iOS 是两端原生壳,壳只做两件事:把 web/ 与 core/ 拷进包、接到本机服务上;所以这两个包里也带着同一份界面与逻辑。
  • 电脑上那块飘在桌面的气泡区是单文件 C# 窗口程序:tools/desktop-bubbles/DesktopBubbles.cs。

这些源码包是从公开树导出的,和网页版跑的是同一份代码:包里不含官网落地页的截图(shots/)与打包产物(build/)—— 那两样不是源码。

你的数据在哪里

只有一处:你自己的设备。

  • 没有账号系统 —— 不用注册、不用登录,也没有"找回密码"这种东西。
  • 没有服务端 —— 网页版的数据存在你浏览器的本地存储里;装到手机上之后存在 App 的私有目录里。
  • 没有埋点、没有统计 —— 这一页本身也不发任何第三方请求:没有 CDN、没有外部字体、没有访问统计。
  • 想带走随时带走 —— 导出 .ics 或分享成图片;数据不会被锁在这个工具里。

更新

版本都发在 Releases,安卓安装包也是从那里下载的。

v0.12.1 2026-10-14

闹钟与计时器(一次性 / 每天 / 工作日 / 自定义重复,多档铃声);课程表支持单双周与周次范围; 桌面气泡区的拖动与折叠更稳;深色、字号三档与极简样式;网页版可以直接装到手机主屏幕当 App 用。

看完整发布记录 →

常见问题

要钱吗?

不要。MIT 许可,源码在 GitHub 上公开,随便看、随便改。

我的日程会被上传吗?

不会。这个项目没有服务端,也没有任何账号体系;网页版的数据在浏览器的本地存储里,装到手机上的数据在 App 自己的目录里。断网也一样能用。

网页版和下载的 App 是同一个东西吗?

是同一套界面和同一份核心逻辑。App 多出来的主要是"系统级"能力:到点真的响的闹钟、桌面气泡区、以及跟着系统走的通知。

怎么把课表弄进去?

手加最直接;课程多的话可以粘贴一份标准 JSON(格式说明在仓库 README 里),或者用列表视图批量加。

换手机会丢数据吗?

本机数据不会自己飞过去,所以要自己带:网页版可以导出 .ics,安卓端还有一条 USB 单向同步(电脑 → 手机)。