📋 日历ICS工具箱

表格转ICS · 知识科普 · 赛程目录。纯前端处理,数据不离开浏览器。

📊 Excel转ICS
🧠 知识科普
🌐 赛程目录
📡 RSS转ICS

📄 从表格生成 ICS 日程

上传 Excel 表格,自动读取第一行表头,生成可导入手机/电脑日历的 ICS 文件。每条事件按"提醒提前"时间弹窗。

支持 .xlsx 和 .xls,自动读取第一个工作表

📝 直接粘贴 / 手填(可编辑表格)

没有 Excel 文件也能用:把日程文字直接粘进下面的表格,支持从 Excel / 网页复制(Tab 分列、换行分行)自动铺开,也可以逐格手填。填好后点「📥 生成 ICS」。

标题日期时间地点备注

ℹ️ 这张表与「🌐 赛程目录 → 📝 粘贴生成 ICS」是同一份数据:在哪边粘都一样,两边看到的内容保持一致。

📄 Excel 模板

表格需包含以下列(第一行为表头,顺序不限):

标题 日期 时间 地点 备注

日期列用"文本"格式填 2026-09-24
时间列用"文本"格式填 08:30
标题/时间/日期 三列为必填,地点/备注可留空

📋 待加入日程

在「知识科普」里点击"+加入日程"的内容会暂存在这里;点「➡️ 填入粘贴表格」(可整条填、也可只填某一条)就会变成上面表格里的行,改完直接生成 ICS。

📜 历史上的今天
🔬 学科知识
🎎 民族节日
📋 我的订阅

📜 历史上的今天 · 全年ICS

内置精选历史事件,每天中午12:00提醒一条。生成后导入系统日历,全年不用管。

🔍 按日期浏览

查看某一天发生过什么,支持在线抓取。可单条加入日程。

🔬 学科知识日历

选一个学科主题,生成全年ICS。每天中午12:00推送一条该学科的重要事件。导入系统日历,零打扰地学习。

📜
世界历史
通用历史大事件
🔬
科学史
重大发现与发明
🔭
天文日历
天象与航天里程碑
💻
计算机史
技术里程碑
🎨
艺术史
名作与艺术家
📖
文学日历
作家与作品
🎵
音乐史
作曲家与首演
🧬
医学史
医学突破
🏮
农历节日
春节、端午、中秋等
💡 推荐组合(一键批量生成)
🎓 学生党:科学+文学+天文 💻 程序员:计算机+科学+天文 📚 文艺向:艺术+文学+音乐 🏥 医疗:医学+科学+天文 🏮 传统节日:农历节日

🎎 少数民族传统节日

收录中国 55 个少数民族的 164 个传统节日。可按民族、地区或节日名搜索;点开任意民族可生成该民族的节日日历 ICS,也可一次生成全部。

🔍 按民族浏览

点击标题栏可展开 / 收起该民族的节日列表。

📋 已生成的ICS记录

这里记录你在当前设备上生成过的知识ICS。数据存在本浏览器,换设备不共享。

📱 导入指南

🍎 iPhone / 苹果日历:把ICS文件发给自己(微信文件传输助手等)→ 点击文件 → "用其他应用打开" → 选"日历" → 导入。

🤖 小米 / 华为 / 安卓:文件管理器里点击ICS → 用日历打开 → 选账户(本地/小米云/Google)→ 确定。

💻 Outlook:文件 → 打开和导出 → 导入/导出 → 导入iCalendar文件。

🌐 Google日历:网页版 → 设置 → 导入和导出 → 选文件导入。

📂 在线 ICS 源目录

按分类浏览可订阅的日历源。「🔗 复制链接」「📅 订阅」对任何源都可用;「⬇️ 下载」仅对允许跨域的源(如 GitHub raw / jsDelivr 托管)有效,失败会自动提示改用复制或订阅。

➕ 添加自定义源(存在本机浏览器,可随时删除)

📝 粘贴生成 ICS(可编辑表格)

把日程文字粘贴进下面的表格:支持从 Excel / 网页复制(Tab 分列、换行分行)自动铺开,也可以逐格手填。填好后点「生成 ICS」。

标题日期时间地点备注

ℹ️ 这张表与「📊 Excel转ICS → 📝 直接粘贴 / 手填」是同一份数据:在哪边粘都一样,两边看到的内容保持一致。

📡 从 RSS / Atom 订阅生成 ICS

输入 RSS / Atom 订阅地址,抓取文章列表作为日程候选,预填进下方可编辑表格;改好后一键导出 ICS。支持 RSS 2.0 与 Atom 1.0,也兼容 RSSHub 生成的订阅源(用默认 RSS 或 .atom 输出即可;?format=json 不支持)。

预设源快捷填入:

✏️ 可编辑表格(预填后可改)

从预览加入的行会填在这里。可直接修改任意单元格、删掉不需要的行,或手动添加额外行。标题 / 日期必填;非「全天」模式下时间也必填。

标题日期时间地点描述链接提醒(分)
⚙️ 映射配置(可选)

🔗 订阅(webcal)

把当前订阅源变成一个可长期订阅的日历地址:日历 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 来取时就是热的。

⏰ 定时刷新怎么配(GitHub Actions)

1. 把要长期订阅的完整链接填进 .github/warm-rss.json 的 urls。

2. 提交推送。仓库里的 .github/workflows/warm-rss.yml 会每 2 小时自动给每条链接加 &fresh=1 打一次,把边缘缓存刷新。

3. 想立刻试:仓库 Actions → RSS 订阅缓存预热 → Run workflow(手动触发)。

⚠️ GitHub 的定时任务:仓库 60 天无活动会被自动停用,且高峰时段可能延迟几分钟到几十分钟。它不是"精确的秒级调度"。

⚠️ 上面的「本页打开期间自动预热」只在页面开着时生效,关掉页面就停。