Mac和iPhone中的日历和提醒事项APP功能强大,但是对内节假日和国务院办公厅发布的《节假日安排通知》支持不友好。
网上也有提供一些个人分享的订阅地址,但问题很多:
- 有的更新不及时
- 有的自己手动编辑存在错漏
- 有的还因为分享人取消失效了
作为开发人员不能忍,自己写个程序来爬国务院办公厅的《节假日安排通知》来生成ics订阅文件
奉上订阅地址:
https://mtjo.net/icalendar/holidays.ics #中国法定节假日
https://mtjo.net/icalendar/holidays.json #中国法定节假日json格式
https://calendars.icloud.com/holidays/cn_zh.ics #中国节假日(苹果官方提供,包含24节气)
怎么订阅
- iPhone / Mac:点 webcal://mtjo.net/icalendar/holidays.ics,系统会直接打开「日历」并提示添加订阅;也可以在「日历 → 文件 → 新建日历订阅」里粘贴
https://mtjo.net/icalendar/holidays.ics。 - 其他客户端:用
https://mtjo.net/icalendar/holidays.ics,凡是支持 iCalendar(RFC 5545)的都能导入。 - JSON:
https://mtjo.net/icalendar/holidays.json,给脚本用。
订阅只要做一次,之后日历自己回来取。服务端会带 ETag / Last-Modified,内容没变时直接回 304,不会反复下载整个日历;同时支持 gzip,实际传输两三 KB。
MacOS / IPHONE 点击当前地址订阅
iphone 原相机扫码订阅

参数
num:抓取多少条国务院办公厅的公告,一条对应一年,默认 5,最多 10。示例:https://mtjo.net/icalendar/holidays.ics?num=10year:只保留某一年的数据,.ics 和 .json 都支持,不带则返回全部。示例:https://mtjo.net/icalendar/holidays.ics?year=2026、https://mtjo.net/icalendar/holidays.json?year=2026
- 公告按发布时间倒序取前 num 条,新一年的安排一发布(往年都是 11 月初)就会自动出现,不用改订阅地址
- 公告列表缓存 1 小时,每份公告的解析结果按年长期缓存并落在服务器上(公告发布后内容不会变),往年数据不再重复抓取,gov.cn 老页面失效也不影响已有年份;假期和补班分开标注,补班是全天事件且不占用时间(TRANSP:TRANSPARENT)
简单说一下原理:
通过国务院办公厅的搜索接口按发布时间倒序取最近的若干份《节假日安排的通知》,再逐份解析正文:


查看数量是否有变化:

有更新则执行爬取内容解析成ics



粤公网安备 44010602011264号