日历与外部任务

更新日期:2026-09-11

Plainva可以连接你已有的日历和任务账户——CalDAV(Nextcloud、Fastmail、mailbox.org等)、Google(日历+Tasks)和Microsoft(Outlook日历+To Do)——并在两个方向上与它们协同工作。你的笔记始终是中心:日程可以变成会议笔记,外部任务列表则会作为普通笔记映射进你的默认任务数据库

实验性功能。 日历会与真实的外部账户(CalDAV、Google和Microsoft)通信,而这些无法在Plainva的自动化测试中演练。它可以正常工作,而且每天都在使用,但请把它当作预览版:请保留一份备份,并报告任何看起来不对劲的地方。

连接一个账户

打开设置 → 仓库 → 云账户 → 连接账户…,选择一个服务商,并在服务选择步骤中勾选日历与任务

助手会显示每项服务的状态(“已连接——找到 n 个日历”)。你之后可以在日历区域管理日历的选择(勾选的会出现在日历标签页中)和任务列表(默认故意不勾选——勾选一项会启动下方描述的任务同步);会议文件夹(会议笔记的创建位置)和默认日历也在那里。密码和令牌保存在你操作系统的钥匙串中。

每台设备都要单独登录。 如果你使用同步设置,账户的详细信息会随之同步,但登录状态本身绝不会同步——这是刻意保留在设备上的。以这种方式获得的账户,会出现在另一台设备的列表中,但在那台设备上尚未登录;在移动应用中,它会带有登录标记,日历会说明这一点,而不是保持空白。只需连接一次即可。

当登录过期时。 日历区域会直接在受影响的账户上显示错误,并说明该怎么做:如果登录已过期或被撤销,会提供重新登录——对 Microsoft 和 Google 账户来说,一次操作就能让每一项服务(文件、日历、邮件)重新恢复正常。如果问题出在服务商配置上(客户端ID错误或已被删除、项目中缺少某个API),提示就会指向那里,而不是提供重新登录;如果是网络错误,稍后重试即可。如果 Google 项目处于测试模式,最常见的原因就是7天限制——详情见Drive指南。只要账户还无法连接,Plainva 就不会再声称它没有任务列表:列表会保持为空,上方显示错误信息。 移动应用中同样如此:账户所在的行会说明原因,重新登录会就地修好这个账户。

两次连接同一个账户不会新增第二个。 当服务商确认这是同一个账户时——Plainva依据的是服务商的已验证身份,而不是显示名称;同一家公司的两个人很容易共用同一个显示名称——新的登录会被并入你已有的账户,而不是在旁边再出现一个。日历选择、同步状态,尤其是你的任务笔记与服务商那边任务之间的关联都会保留下来;没有这些,下一次同步就会把每一个映射的任务再创建一遍。而使用CalDAV时,由于不存在已验证身份,仍会像以前一样出现一个单独的条目。

日历标签页

Google 的状态条目——办公地点、专注时间和外出——在 Plainva 中显示为独立的一行,或者是日程背后一条安静的色带,而不是又一个日程块:「居家办公」不是会议,一天里有三条这样的条目加一场会议,不应该看起来像四场会议。Plainva 只读取它们,从不写入——在 Google 中创建外出条目会自动拒绝邀请,这不该是日历视图顺带触发的副作用。

从左侧操作栏(日历图标)或命令面板打开日历)打开它。顶部的切换控件提供五种视图:3天视图都会显示一个时间网格,左侧带有小时刻度;日程以色块形式出现在其开始时间处,色块高度对应持续时长,重叠的日程会并排显示,一条红线标记”现在”。全天日程以及(开启任务叠加后)到期的任务会显示在网格上方的条带中。视图会显示月历网格(每个日历对应一个彩色圆点),并在右侧显示所选日期的单日时间网格。议程视图按天分组列出接下来几周的安排。今天可跳回当前;箭头按当前所选周期(一天、三天、一周或一个月)翻页。一周的第一天遵循每周开始于设置(设置 → 应用 → 外观:周一、周六或周日)——该设置同样适用于侧边栏日历。视图每隔几分钟会自动刷新;点击刷新按钮可以强制刷新。对于 Microsoft 日历和大多数 CalDAV 服务器,Plainva 现在只获取更改的部分,而不是每次都获取整个时间范围——数据量明显减少,尤其是在手机上。系统仍会至少每小时执行一次完整刷新,确保不会遗漏任何更改列表没有捕捉到的内容;而且只有服务商明确报告为已删除的内容才会被删除。使用 Google 时,每次刷新都是完整的:其 API 不支持把更改列表和日期范围结合使用。已结束的日程会显示得更暗淡(如同Google日历),让今天剩余的安排更加醒目。 跨多天的日程会显示为一条贯穿所有相关日期的长条——只有一个标题、一个点击目标,而不是每天各出现一次。如果它延续到本周之后,会在边缘被直接切断,并在下一行继续显示,不再重复标题。日、3 天和周视图中的全天条也是同样的方式。 点击标题(或用 Tab 到达后按 Enter)打开日期选择:年、月、日、今天——选一天即跳转;方向键在网格中移动,Esc 关闭。 在触控板上,在日历上方用两指水平滑动(或 Shift + 鼠标滚轮)同样可以翻页——每次滑动一个时段。

空间不足时,日期选择器下方的键盘提示会自动换行;年份导航、全部七个星期列和今天按钮始终完整显示在选择器内。

独立窗口中的日历

在操作栏中右键点击日历,可以将其在一个独立窗口中打开——放在你正在写的笔记旁边会很方便。之后再次点击该项,那个窗口就会被带到最前面,而不是打开第二个日历。

命令面板提供打开通讯窗口:一个窗口中并排显示邮件和日历。更多内容见快速上手

日程 → 会议笔记

任意日程上的笔记图标会创建(或重新打开)它的会议笔记——一篇存放在你会议文件夹中的普通笔记,命名为YYYY-MM-DD 标题.md,预先填入日期、地点和参会人,外加Frontmatter中一个把它和该日程关联起来的小plainva.pim标记。再次点击同一个日程,总是会打开同一篇笔记;一篇恰好同名的自建笔记永远不会被碰到。

你的任务数据库中的外部任务列表

提醒事项列表(通过 iCloud CalDAV 的 Apple 提醒事项、Nextcloud 任务列表)在服务器上是独立的集合,因此显示在任务列表下,而不会出现在日历中。如果已连接的账户没有任务列表,该区域会说明并提供重新查找;若查找本身失败,则显示原因,并保留你先前的选择。

在一个已连接的账户上勾选一个任务列表,它的任务就会作为笔记出现在你的默认任务数据库中:标题会变成笔记(H1),截止日期会落入数据库的日期列,完成状态会映射到数据库的已完成复选框属性(状态列会随之跟随;没有复选框列的数据库会使用状态约定——第一个选项=未完成,最后一个选项=已完成)。这个同步是双向的,并且按字段进行:

新的任务列表 从一开始就是勾选的——不同于需要先选择的日历。取消勾选会保持:重启后、刷新列表后以及经过设置同步后都如此。

删除是双向的——但只有在你确认之后才会生效。 在Plainva中删除一篇任务笔记,服务商那边的任务也会被删除。此后你有八秒钟的缓冲时间:底部的提示上带有撤销,点击一下,就能在任何内容送达服务商之前,把笔记连同其文本内容一起恢复。只有当这个窗口关闭之后,删除才会真正生效。

这条规则刻意设有两个限制。仅仅是文件丢失,不会删除任何东西。 如果一篇笔记在你没有删除它的情况下消失了——比如同步尚未完成,或者某个文件夹还没有到达——服务商那边的任务不会受到任何影响。而且在八秒钟结束之前关闭Plainva,同样不会删除任何东西——一次被中断的删除,其安全的结局就是任务依然存在。如果在此期间该任务在服务商那边发生了变化,Plainva会停止这次删除并说明原因——别人的更改不会被悄无声息地抹掉。

这条规则在两个设备上都成立。 同步机制在手机上同样运行——任务会在那里导入,已有的笔记会被识别而不是重复创建,你的更改也会推送给服务商。唯一的区别在于撤销窗口:在桌面版上,关闭Plainva会取消删除;在手机上,把应用切到后台会起到同样的作用。无论哪种方式,任务都会保留下来。

反过来,旧的规则依然成立:远端删除的任务绝不会删除你的笔记(它只会变成一篇普通笔记)。重命名或移动一篇任务笔记不会有问题——Frontmatter标记会保持这个关联。

重新连接不会再产生重复。 当你重新登录某个账户、在第二台设备上设置好Plainva,或者搜索索引被重建时,Plainva会通过同一个标记识别出已有的笔记并直接沿用它们,而不是把这些任务再导入一次。仓库仍在同步期间,不会创建任何任务笔记——否则一篇还在传输途中的笔记,恰恰就会变成这样一个重复项。

当前的限制:以普通笔记方式创建的任务不会被推送到服务商(请在远端或通过任务数据库创建它们),本页上的一切目前都以桌面版为先。

通过在其他日历中占用时间创建的副本,会在 Google、Microsoft 和 CalDAV 中保存服务商专用的 Plainva 关联。日历视图用链接图标显示这种关系;刷新后,来源和占用项会重新匹配,而不会变成互不相关的重复项。

电脑上的提醒

设置 → 日历 → 提醒中打开提醒日程;第一次时系统会询问一次权限。日程自带的提醒优先——只有在它没有指定时才使用提前时间,全天日程则在全天日程中选定的时刻出声。到期任务会把任务数据库里的任务一并纳入,仅这些日历限定提醒的来源(什么都不勾选即表示全部,之后新连接的日历也会自动包含在内)。没有时间的任务紧挨在下方:任务的截止日期是当天本身,而不是前一天晚上——因此它有自己的规则(日期和时间可自由选择,默认设置为截止日当天的 09:00)。以前它借用的是全天日程的规则,也就是说它会在前一天晚上 19:00 提醒一次,此后再也不会提醒,也没有任何地方说明原因。如果截止列带有时间,任务仍然会使用正常的提前时间。全天日程这一行现在也可以接受任意时刻,而不再局限于两种固定组合;这两行下方都会写出相应的说明文字。

这两个开关相互独立。 如果你只想收到任务的提醒,打开到期任务并关闭提醒日程——以前两者相互依赖,却没有任何地方说明这一点。

提醒现在会说明它通知的是什么:「日程 · 09:30」或「任务 · 今天到期」。在 Android 上,每种类型还带有自己的状态栏图标。此外,设置下方的一行会说明已安排的内容——「已安排:12 个日程 · 3 个任务」——或者说明为什么什么都没有安排,例如因为这台设备上没有设置任务数据库(它是通过设置同步到达的)。

与手机的差别写在设置里,而不是小字里。 在手机上,提醒交由操作系统接管,应用关闭时也会被唤醒。电脑上没有这道交接:Plainva 自己唤醒,因此必须处于运行状态。 应用关闭时提醒会落空,事后也不会补发。作为交换,这里没有数量上限。

通知本身不带按钮——电脑不提供这一点。操作改放在应用内的提示中:日程是在日历中显示,任务是打开任务。窗口不会因此抢到最前面。

在手机上,一旦连接了设备账户此设备上,这也包括设备的提醒事项列表(iOS):每个列表都是与 Nextcloud 列表相同的任务列表,遵循相同的规则——导入任务数据库、双向勾选、通过删除日志删除。

在后台继续运行

电脑上的提醒只有在 Plainva 运行时才会送达,因此设置 → 启动与行为 → 后台提供两个开关——分开设置,因为这是两个不同的愿望,且默认都关闭

第二个开关会自证。 并非每种桌面环境都提供通知区域,而图标是否真的出现也无法可靠预测。因此 Plainva 会先把图标放上去,再问你是否看得到。只有回答“看到了”才保留该设置;回答“没有”时图标会被撤下,开关保持关闭。这样窗口就绝不会在没有回头路的情况下消失。下次启动时同样如此:如果那时图标无法创建,该设置会自行关闭。

下方的提醒出现的条件一行随时说明当前情况——Plainva 运行期间窗口关闭时也会出现

需要知道: Plainva 在后台继续运行时,同步、日历刷新和备份检查也在继续。下次打开时仓库已是最新——应用在你看不见的时候仍在工作。

在日历中显示数据库

日历可以把数据库中的条目与日程一同显示。视图上方的显示:栏列出每一个指定了日期列、类型为日历时间线.base 视图。点击一次显示,再点一次隐藏。

这样显示的条目始终能被认出是笔记:虚线边、前面一个菱形,绝不使用日程那种实心样式。点击打开的正是数据库行本来就有的预览。拖到另一天会写入该笔记的日期列——与在表格中编辑该单元格完全相同。若该列带有时间,条目会落在当日网格的对应小时;没有时间则留在全天区。

显示哪些视图属于该 vault,并随设置同步一起传递:你的日历在电脑和手机上是一样的。

**反过来也一样:**在数据库的日历视图中,背景中的日程按钮会把当天真正的日程显示为一行淡色文字——让你看清自己在对着什么安排。它们有意只作背景:不是该数据库的行,也不可点击。

把数据库条目写入日历

带日期的条目可以变成服务商处的真实日程。条目所在行的菜单(手机上是它的操作面板)提供添加到日历。日程会采用该条目的日期——若该列带时间就带上时间,否则作为全天日程——并附带一个指回笔记的链接。

此后两者保持关联,遵循三条固定规则:

这和给任务预留时间不是一回事:那里你是为某件事预留时间,任务的日期原地不动。这里你说的是:这个条目就是这个日程。