V2EX 的朋友们好,我是「白纸日历」的开发者。
它目前免费、无广告,也有用户反馈它的界面和功能比 macOS 自带日历更好用。
我把它定位成一款为中国用户定制的中文日历,把农历、节气、节假日、调休和日程放进 Mac 菜单栏。
我做这个应用的原因很简单:在 Mac 上,我每天都会确认几次日期、星期、农历、调休和当天安排。可是这些信息分散在菜单栏、系统日历、提醒事项和节假日网页里。为了回答一个很小的问题,往往要连续打开几个地方。
于是我做了「白纸日历」:让它安静地待在菜单栏,需要时点一下,今天是什么日子、这个月怎么放假、接下来有什么安排,尽量在一个面板里看完。

利益相关:我是白纸日历的开发者。应用目前在中国区 Mac App Store 免费提供,不需要注册账号,也没有订阅和内购。
本文部分配图采用 1.5.0 版宣传素材;下载版本和实际可用功能请以 App Store 页面显示为准。
我想解决的不是“再做一个复杂日历”
白纸日历不打算替代 Fantastical 、BusyCal ,也不适合团队排期、会议室预订或跨平台协作。它更像一个轻量的日期入口,专门处理这些高频动作:
- 看今天几号、星期几、农历是什么;
- 确认周末是否补班、下个假期还有多久;
- 看今天的会议、约会和到期提醒;
- 临时记下一件日程或待办;
- 不打开完整 App ,快速确认接下来要做什么。
如果你已经在使用 macOS 的日历和提醒事项,它不会要求你重新维护一套数据,而是把现有工作流放到一个更顺手的入口里。
一个月历里同时看公历、农历和调休
点开菜单栏后,白纸日历会展开一个 42 格月历。每个日期可以显示公历、农历小字、传统节日、二十四节气,以及日历事件和提醒的提示点。
中国法定节假日和调休上班日会以「休」「班」标记。节假日数据从 Apple 的中国节假日 iCal 公共订阅源获取,并在本机缓存;网络暂时不可用时,已有缓存仍可继续使用。

农历信息还可以展开查看黄历摘要,包括宜忌、干支、冲煞等传统日期信息。我把它做成可展开的卡片,而不是一个必须进入的独立页面:想看时展开,不想看时就保持清爽。
假期不只显示“哪天放”,还给出请假参考
节假日信息对我来说不只是查日期,也会直接影响版本排期、出行和家庭安排。所以假期卡片除了列出放假和调休,还会显示假期倒计时和请假攻略。
请假攻略会结合假期、周末和调休安排,列出请 0 ~ 5 天年假的可行组合,并标注相对划算的方案。它只是日期计算和规划参考,不替代公司制度或官方通知,但在准备小长假时可以少做几次表格推算。

把系统日历和提醒事项放在同一天看
macOS 的「日历」和「提醒事项」本来就是两个 App ,但它们经常回答同一个问题:今天我要做什么?
白纸日历通过 EventKit 读取系统日历事件,通过提醒事项接口读取待办,把同一天的安排合并到日期详情里:
- 查看日历事件和全天安排;
- 查看今日到期、逾期的提醒;
- 直接新建、编辑或删除日程;
- 创建仅指定日期的提醒,或设置具体时间;
- 在设置中选择需要显示的日历和提醒列表;
- 完成提醒后立即刷新面板和小组件。

在设置里还可以按日历名称和颜色选择显示范围。工作、个人、节假日或自动化日历可以分别控制,筛选结果会同步到月历、详情卡和小组件。

新建日程支持输入「明天下午三点开会」这类自然语言,应用会在本机解析日期和时间,再由你确认后写入系统日历。解析失败时不会偷偷创建,仍然由你决定最终内容。

菜单栏和桌面小组件,都可以按自己的习惯来
菜单栏空间很宝贵,所以我没有强制一种显示方式。你可以选择仅图标、仅日期、标准、完整或自定义格式,也可以组合年份、星期、时间、秒、农历和节气。

应用还提供四类 macOS 桌面小组件:日期、月历、临近日程和提醒事项,覆盖小、中、大尺寸。小组件会同步主题和已选择的日历范围,点击日期或事项可以回到对应面板。


如果你不喜欢小组件常驻桌面,也可以只使用菜单栏入口;两者互不影响。
我在代码里做的几个取舍
这是一个原生 macOS 应用,主界面使用 SwiftUI ,菜单栏状态项和面板窗口使用 AppKit 。项目最低支持 macOS 13 ,依赖通过 CocoaPods 管理,农历计算使用 Tyme4Swift 。
几个实现原则也直接影响了使用体验:
- 系统数据不搬家。 日历和提醒事项通过 EventKit 读取和写回,应用只保存显示偏好和小组件快照。
- 小组件有明确边界。 主应用把经过筛选的日期、事件和提醒快照写入 App Group ,WidgetKit 只渲染快照;没有权限或快照过期时,小组件会明确显示状态,不展示猜测的数据。
- 菜单栏刷新不制造空白状态。 秒级显示时只替换有效文本,避免状态项先清空再恢复造成宽度抖动;从文本切换到图标时也先安装有效内容。
- 设置尽量可回退。 可以开启“精简主面板”、选择日历范围、切换六套主题、跟随系统深浅色,也可以恢复默认菜单栏显示。
- 权限按功能申请。 只有使用日历、提醒事项、通知或小组件对应能力时,才会出现相应的 macOS 授权提示。
这些细节不会出现在宣传截图里,但它们决定了一个菜单栏工具能不能每天留下来。
隐私和联网,先把边界说清楚
- 不需要注册白纸日历账号;
- 日历、提醒事项和显示偏好在本机处理;
- 农历和黄历计算在本机完成;
- 节假日与公告更新需要联网,并使用本地缓存;
- 不做广告追踪,不把日程和提醒事项用于用户画像;
- 根据 App Store 隐私标签,应用可能收集与身份不关联的崩溃和诊断数据,用于排查稳定性问题。
日历和提醒事项是否授权完全由 macOS 控制。不授权时,主面板和小组件会保留可用的日期信息,相关日程模块则显示权限状态,不会绕过系统设置读取数据。
完整说明可以查看隐私政策。

它适合谁,也不适合谁
比较适合:
- 使用 Mac 工作、写代码、做设计或处理文档的人;
- 经常查看农历、节气、法定节假日和调休的人;
- 已经使用系统日历和提醒事项,但觉得来回切换太重的人;
- 想在菜单栏或桌面小组件里保留一个轻量日期入口的人。
不太适合:
- 需要团队共享、会议室和复杂重复规则的企业用户;
- 需要 Windows 、Android 等多端同步的用户;
- 完全不使用 Apple 日历或提醒事项,也不希望安装菜单栏常驻工具的人。
下载和反馈
当前公开商店页面显示的版本和系统要求,请以 App Store 页面为准:
设备要求:macOS 13.0 或更高版本。也可以在 Mac App Store 搜索“白纸日历”。
如果你试用后发现菜单栏显示、调休数据、日程筛选、小组件刷新或某个 macOS 版本上的问题,欢迎在评论里直接指出,也可以发邮件到 [email protected]。我更希望收到可复现的步骤、macOS 版本和截图,而不是一句“有点不对”,这样才能真正修好它。
最后,感谢每一位愿意试用、提需求和报告问题的人。白纸日历的方向一直很具体:让 Mac 上那些每天都要确认的日期信息,更清楚、更轻一点。