表格转ICS · 知识科普 · 赛程目录。纯前端处理,数据不离开浏览器。
上传 Excel 表格,自动读取第一行表头,生成可导入手机/电脑日历的 ICS 文件。每条事件按"提醒提前"时间弹窗。
支持 .xlsx 和 .xls,自动读取第一个工作表
没有 Excel 文件也能用:把日程文字直接粘进下面的表格,支持从 Excel / 网页复制(Tab 分列、换行分行)自动铺开,也可以逐格手填。填好后点「📥 生成 ICS」。
| 标题 | 日期 | 时间 | 地点 | 备注 |
|---|
ℹ️ 这张表与「🌐 赛程目录 → 📝 粘贴生成 ICS」是同一份数据:在哪边粘都一样,两边看到的内容保持一致。
表格需包含以下列(第一行为表头,顺序不限):
标题 日期 时间 地点 备注
日期列用"文本"格式填 2026-09-24
时间列用"文本"格式填 08:30
标题/时间/日期 三列为必填,地点/备注可留空
在「知识科普」里点击"+加入日程"的内容会暂存在这里,可复制到表格后一起生成。
内置精选历史事件,每天中午12:00提醒一条。生成后导入系统日历,全年不用管。
查看某一天发生过什么,支持在线抓取。可单条加入日程。
选一个学科主题,生成全年ICS。每天中午12:00推送一条该学科的重要事件。导入系统日历,零打扰地学习。
收录中国 55 个少数民族的 164 个传统节日。可按民族、地区或节日名搜索;点开任意民族可生成该民族的节日日历 ICS,也可一次生成全部。
点击标题栏可展开 / 收起该民族的节日列表。
这里记录你在当前设备上生成过的知识ICS。数据存在本浏览器,换设备不共享。
🍎 iPhone / 苹果日历:把ICS文件发给自己(微信文件传输助手等)→ 点击文件 → "用其他应用打开" → 选"日历" → 导入。
🤖 小米 / 华为 / 安卓:文件管理器里点击ICS → 用日历打开 → 选账户(本地/小米云/Google)→ 确定。
💻 Outlook:文件 → 打开和导出 → 导入/导出 → 导入iCalendar文件。
🌐 Google日历:网页版 → 设置 → 导入和导出 → 选文件导入。
输入 RSS / Atom 订阅地址,抓取文章列表作为日程候选,预填进下方可编辑表格;改好后一键导出 ICS。支持 RSS 2.0 与 Atom 1.0。
从预览加入的行会填在这里。可直接修改任意单元格、删掉不需要的行,或手动添加额外行。标题 / 日期必填;非「全天」模式下时间也必填。
| 标题 | 日期 | 时间 | 地点 | 描述 | 链接 | 提醒(分) |
|---|
把当前订阅源变成一个可长期订阅的日历地址:日历 App 会按自己的节奏自动重新拉取,不必每次手动导出。链接由 Cloudflare 上的 /api/rss-to-ics 实时把订阅源转成 ICS。
iPhone / iPad:设置 → 日历 → 账户 → 添加账户 → 其他 → 添加已订阅的日历 → 粘贴链接。
macOS 日历:文件 → 新建日历订阅 → 粘贴链接 → 选「自动刷新」。
Google 日历:左下「其他日历」+ → 通过网址添加 → 粘贴 https 链接。
Outlook:添加日历 → 从 Internet 订阅 → 粘贴链接。
⚠️ 订阅内容直接从订阅源派生,不包含你在上面表格里手工改的内容;要手工改就用「📥 导出 ICS」。
⚠️ 刷新时机由日历 App 决定(Apple 较勤、Google 约 12–24 小时),不是实时;端点已用缓存保护源站。
把「订阅地址 + 它的映射配置」整体存成一条,之后生成订阅链接、缓存预热都不用再手拼。数据只存在你这台设备的浏览器里,不上传、不同步。
⬆️ 导出备份:得到 { version, feeds: [{ name, url, tz, dur, title, uid, limit, remind, ev }] };换电脑 / 换浏览器时用「⬇️ 导入备份」恢复(按 url 合并,同名以导入为准)。
📋 复制定时预热清单:得到 { "urls": [ ... ] },整段替换仓库里 .github/warm-rss.json 的内容即可 —— GitHub Actions 会按它每 2 小时自动预热。
列表每行的按钮:📥 载入到上面的编辑器 | 📋 复制该源的订阅链接 | 🧪 立刻测一下 | 🗑 删除。名称可直接点着改。
日历 App 来取数据时如果边缘缓存是冷的,就得现抓源站(慢,还可能被限速)。这里可以先把缓存热上。「真正的定时刷新」用仓库里的 GitHub Actions(.github/workflows/warm-rss.yml)——因为 Cloudflare Pages 不支持 cron。
预热上面「📚 我的订阅源」里的全部订阅源:给每条链接加 fresh=1 打一次,强制刷新边缘缓存,日历 App 来取时就是热的。
1. 把要长期订阅的完整链接填进 .github/warm-rss.json 的 urls。
2. 提交推送。仓库里的 .github/workflows/warm-rss.yml 会每 2 小时自动给每条链接加 &fresh=1 打一次,把边缘缓存刷新。
3. 想立刻试:仓库 Actions → RSS 订阅缓存预热 → Run workflow(手动触发)。
⚠️ GitHub 的定时任务:仓库 60 天无活动会被自动停用,且高峰时段可能延迟几分钟到几十分钟。它不是"精确的秒级调度"。
⚠️ 上面的「本页打开期间自动预热」只在页面开着时生效,关掉页面就停。