Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


你是否曾尝试在 Notion 中搭建人脉数据库,并一一记录下好友和客户的生日,结果却因为缺乏有效的提醒机制,最终在忙碌中完美错过?你是否曾手动设置数个重要日期的提醒,却疲于大量的重复操作和定期更改,最终败在了无尽的「数字家务」手中?

若是使用函数属性计算下一次提醒日期,得出的结果固然可靠,但其不支持设置提醒,亦不支持通过数据库自动化发送通知(自动化不支持通过函数属性触发);若是将每一个重复事项设置为数据库模板,设置好随模板触发的提醒,并使模板周期性自动创建,虽然也能如愿实现相应效果,但仅限于类别较少的事项。如果有大量不同的重复事项,就需要手动创建大量的模板。

那么,是否存在一种方法,创建时即能设定好重复提醒呢?本文旨在完全摒除手动更新的负担,助力数据库更好地管理周期性提醒,并将围绕「生日提醒」展开讲解。

注:下文展示的数据库可在此处查看。

原理

2025 年 7 月,Notion 对数据库中的日期属性进行了功能更新,使之能为填入的日期自动添加提醒,该功能提供了 当天提前 1 天提前 2 天提前 1 周 四个选项,目前仅支持选择其中一项(不支持当天提醒的同时也提前一周提醒)。依托于该功能,我们便可利用数据库自动化定期更新指定日期属性,并自动设定好相应的提醒。

配置

首先我们需要创建一个「生日数据库」,包含以下初始属性:

  • 人名(标题)
  • 出生日期(日期):手动填入。
  • 下次生日(日期):用于自动更新与提醒设置。
  • 生日更新(复选框):用于「下次生日」初始化和错误数据修正。

「下次生日」初始化自动化

由于「下次生日」不仅仅承担生日日期的展示窗口,同时还兼任周期自动化的触发条件,所以我们在正式进入「生日维护」之前,需要先将其初始化。为此,我们将配置两种不同的初始化触发条件:

  1. 「生日更新」被勾选时;
  2. 「出生日期」被编辑时。

只要监听到任意一种,则触发该自动化。在这之后,除了使用公式计算出下一次生日的日期以外,也别忘了取消复选框的勾选状态。

「下次生日」周期维护自动化的配置
/* 下次生日 */
lets(
	years, today().dateAdd(-2, "days").dateBetween(context("Trigger page").prop("出生日期"), "years"),
	
	context("Trigger page").prop("出生日期").dateAdd(years+1, "years")
)

为什么用复选框,而不是按钮?复选框可以批量选择后勾选,而按钮并不能批量点击。

完成了初始化自动化的设置后,不论是新增页面填入出生日期时,还是编辑现存页面的出生日期时,又或是在批量导入 .csv 后框选多个页面勾选复选框时,「下次生日」都将如约更新并自动设置好提醒。

批量框选以触发自动化更新「下次生日」

「下次生日」周期维护自动化

接下来就是重中之重,如何检测到需要更新生日的条目(们),并给该条目(们)的「下次生日」填入一个新日期?这个问题曾困扰了我许久。因为函数结果的变动并不能触发自动化,故而想实现无人干预的长效维护只有周期性自动化一条路可走。然而一旦触发条件设置为特定周期后,执行操作中能选择用来参与计算的变量就屈指可数了:「触发日期」和「触发时间」。原因在于周期性自动化是一种批量编辑手段,可同时更新多个页面的属性,但多个页面也就意味着同一个属性会有多个值,代入到函数计算中作为参数时没有一个稳定且唯一的值以供使用,是故 Notion 在周期性触发的自动化中并不提供页面属性作为可以选择的计算参数(未来说不定会支持,但至少目前不行)。

回到问题本身,厘清其触发场景后就能迎刃而解了:在什么情况下我们会需要更新「下次生日」?在当前生日结束时,也可以理解为「下次生日是昨天时」。那么我们需要执行的操作是?计算明年生日的日期,虽然前文提及的原因会导致我们无法获取到页面对应的「出生日期」和「下次生日」,但别忘了,当前的「下次生日」是昨天,所以我们可以顺理成章地得出这样的结论:昨天过生日的人会在明年的昨天过下一个生日!

这听起来是一句废话,但是却巧妙地利用仅存的参数规避了 Notion 当前周期性自动化能力的不足,具体的设置如下图:

「下次生日」周期维护自动化的配置
/* 下次生日 */
context("Date triggered").dateAdd(-1, "days").dateAdd(1, "years")

设置完成后,记得打开「下次生日」的自动提醒功能,该周期性自动提醒就设置好了。

延伸

唯一的缺憾是,生日是「2 月 29 号」的幸运儿在经过 dateAdd(1, "years") 函数的计算后会得出「次年 2 月 28 号」,并会在此后的每一年都维持在 28 号。对此,也许额外设置一个「检测生日是否是 2 月 29 号」的周期维护自动化就可以解决了,有兴趣的派友欢迎自己试试~

退一步说,生日提醒本质上是一个相对小众的需求,一些小众 App 或许能用更有人情味儿的界面提供相同的功能。但这套基于 Notion 的周期性自动化模式也可以延伸到更多的应用场景:

  • 历史上的今天:某某年的今天达成了什么成就、某某年的本月做出了什么决定。
  • 每月提醒、每季提醒、每 100 天提醒:通过增加一个单选属性,并在自动化批量编辑操作中添加相对应的过滤条件,即可在每周、每月、每季度、每特定天数等周期实现循环提醒功能。
「提醒日期」预设周期维护自动化的配置
自动化中的页面筛选逻辑

这个思路在实际操作中,类似于「2 月 29 号」的问题也会发生:一旦涉及到「数月」性质的周期,就会将当月不存在的日期(比如每月 31 号提醒,遇到 9 月就会变成每月 30 号提醒)往前推并在此后的每个周期都维持在这一天。对此,我目前也没有想到更好的办法,如果各位派友有解决思路,欢迎来评论区指点~

结尾

诚然,作为第二大脑的 Notion 能帮你分毫不差地记住每一个值得纪念的日子,但真正能让收到祝福的人感受到温情的仍是因人制宜的祝福和惊喜。我们一方面呼吁用外部手段管理繁冗的数据来提高效率,一方面也不应忘记真诚的话语才是叩动人心的敲门砖。毕竟,真正在乎的日子,谁会忘记呢?


关联阅读

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀

8
7