我做了一个更懂中文日期的 macOS 菜单栏日历:白纸日历

zhoudian 2026-08-30 15:48 1

V2EX 的朋友们好,我是「白纸日历」的开发者。


它目前免费、无广告,也有用户反馈它的界面和功能比 macOS 自带日历更好用。


我把它定位成一款为中国用户定制的中文日历,把农历、节气、节假日、调休和日程放进 Mac 菜单栏。


我做这个应用的原因很简单:在 Mac 上,我每天都会确认几次日期、星期、农历、调休和当天安排。可是这些信息分散在菜单栏、系统日历、提醒事项和节假日网页里。为了回答一个很小的问题,往往要连续打开几个地方。


于是我做了「白纸日历」:让它安静地待在菜单栏,需要时点一下,今天是什么日子、这个月怎么放假、接下来有什么安排,尽量在一个面板里看完。


白纸日历 1.5.0 主面板



利益相关:我是白纸日历的开发者。应用目前在中国区 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 。


几个实现原则也直接影响了使用体验:



  1. 系统数据不搬家。 日历和提醒事项通过 EventKit 读取和写回,应用只保存显示偏好和小组件快照。

  2. 小组件有明确边界。 主应用把经过筛选的日期、事件和提醒快照写入 App Group ,WidgetKit 只渲染快照;没有权限或快照过期时,小组件会明确显示状态,不展示猜测的数据。

  3. 菜单栏刷新不制造空白状态。 秒级显示时只替换有效文本,避免状态项先清空再恢复造成宽度抖动;从文本切换到图标时也先安装有效内容。

  4. 设置尽量可回退。 可以开启“精简主面板”、选择日历范围、切换六套主题、跟随系统深浅色,也可以恢复默认菜单栏显示。

  5. 权限按功能申请。 只有使用日历、提醒事项、通知或小组件对应能力时,才会出现相应的 macOS 授权提示。


这些细节不会出现在宣传截图里,但它们决定了一个菜单栏工具能不能每天留下来。


隐私和联网,先把边界说清楚



  • 不需要注册白纸日历账号;

  • 日历、提醒事项和显示偏好在本机处理;

  • 农历和黄历计算在本机完成;

  • 节假日与公告更新需要联网,并使用本地缓存;

  • 不做广告追踪,不把日程和提醒事项用于用户画像;

  • 根据 App Store 隐私标签,应用可能收集与身份不关联的崩溃和诊断数据,用于排查稳定性问题。


日历和提醒事项是否授权完全由 macOS 控制。不授权时,主面板和小组件会保留可用的日期信息,相关日程模块则显示权限状态,不会绕过系统设置读取数据。


完整说明可以查看隐私政策。


隐私说明


它适合谁,也不适合谁


比较适合:



  • 使用 Mac 工作、写代码、做设计或处理文档的人;

  • 经常查看农历、节气、法定节假日和调休的人;

  • 已经使用系统日历和提醒事项,但觉得来回切换太重的人;

  • 想在菜单栏或桌面小组件里保留一个轻量日期入口的人。


不太适合:



  • 需要团队共享、会议室和复杂重复规则的企业用户;

  • 需要 Windows 、Android 等多端同步的用户;

  • 完全不使用 Apple 日历或提醒事项,也不希望安装菜单栏常驻工具的人。


下载和反馈


当前公开商店页面显示的版本和系统要求,请以 App Store 页面为准:


在 Mac App Store 下载白纸日历


设备要求:macOS 13.0 或更高版本。也可以在 Mac App Store 搜索“白纸日历”。


官网:baizhi.me/calendar


如果你试用后发现菜单栏显示、调休数据、日程筛选、小组件刷新或某个 macOS 版本上的问题,欢迎在评论里直接指出,也可以发邮件到 [email protected]。我更希望收到可复现的步骤、macOS 版本和截图,而不是一句“有点不对”,这样才能真正修好它。


最后,感谢每一位愿意试用、提需求和报告问题的人。白纸日历的方向一直很具体:让 Mac 上那些每天都要确认的日期信息,更清楚、更轻一点。

最新回复 (9)
  • wwmmkk 08-30 17:22
    1
    这个文案也太 AI 了……
  • zhoudian 楼主 08-30 21:26
    2
    @wwmmkk 是有用😂😂
  • gangsta 08-30 22:49
    3
    老哥,打扰一下,插一个无关话题 😅
    请问你的系统设置里是不是开启了「减少透明度」(辅助功能 → 显示)这个选项啊?
    我应该用的和你一样的壁纸,但是我的系统菜单栏无法做到类似你截图里(比如第 6 张)这种白底黑字或者黑图标的效果。
    系统里「显示菜单栏背景」「减少透明度」这两个关于沉浸式菜单的相关选项,我目前无论怎么组合设置,我的菜单栏感觉都会透一点儿壁纸的颜色过来,而且图标和文字始终都是白色的。

  • yuankui 08-31 05:37
    4
    老哥,建议换个名字。。
  • zhoudian 楼主 08-31 08:47
    5
    @gangsta 我没有特别研究哎。但是我稍晚研究一下
  • zhoudian 楼主 08-31 08:47
    6
    @yuankui 有什么说法吗?
  • xiaodaiguaray 08-31 10:05
    7
    尝鲜了一下,有一些小建议:
    1. 面板 Ai 味道太浓了,可以尝试用专业的设计工具设计一下 UI
    2. 可以加一些 DIY 面板的特性

    总体是极简风,符合我的胃口,用一段时间看看。
  • zhoudian 楼主 08-31 10:29
    8
    @gangsta 两个图的文字和图标颜色不同,主要是 macOS 的菜单栏外观自适应导致的,不一定是应用本身的问题。
    - 图 1:菜单栏背景相对较暗或系统处于深色外观,所以文字、图标使用白色。
    - 图 2:菜单栏背景较亮或系统处于浅色外观,所以文字、图标使用黑色。
  • zhoudian 楼主 08-31 10:32
    9
    @xiaodaiguaray 分享我个人心得
    1. Ai 味道太浓了的本事不重要,重要是用得爽。就像谷歌收录并不拒绝 ai 生成的文章,但是拒绝生成同类或者质量很差没有自己思考的文章
    2. 蛮不错的建议,后续我们考虑一下哈。
* 帖子来源V2EX
返回