日历与外部任务

更新日期:2026-10-23

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 关闭。 日期选择器底部的显示周数(周从星期一开始时提供)会为月视图添加一列周数,并在日、3 天和周视图的标题中标明当前是第几周——这是本设备上所有日历共用的一个开关,侧栏日历和手机端也包括在内。 在触控板上,在日历上方用两指水平滑动(或 Shift + 鼠标滚轮)同样可以翻页——每次滑动一个时段。

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

全天栏会自行变高,最多五行。某一天的条目更多时,它的最后一行会显示 + 另外 2 项;点击一下即可为所有日期展开全天栏,收起 则恢复原状。手机端的行为相同;那里的全天栏会与日期标题一起固定在时间栏上方。账户没有同步时,日历会直接说明: 日历上方的一行写明是哪个账户或日历、从何时起、原因是什么;下方的日程保持不动,是最后一次获取的状态。重试 会立即再次询问。只有当账户的登录不再被接受时,Plainva 才会暂停该账户;其他任何错误之后,它都会以逐渐拉长的间隔自行重试,而单个日历出错不会影响该账户其余日历的同步。

独立窗口中的日历

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

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

日程 → 会议笔记

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

会议笔记模板:在会议文件夹旁边,你可以从模板文件夹中选择一个模板——手机上在日历账户的日历设置中。不使用模板时,笔记与以往相同。未选择时,文件夹模板(针对会议文件夹)和笔记类型模板(针对类型Meeting)生效;该设置优先于两者。除了常用占位符之外,模板还可以使用{{title}}(日程标题)、{{start}}和{{end}}(开始和结束——全天日程为第一天和最后一天;可自定格式,如{{start:HH:mm}})、{{location}}、{{attendees}}(以逗号分隔,{{attendees:list}}为列表)、{{organizer}}、{{link}}(在线会议链接)和{{description}}(日程描述)。{{date}}是日程所在的日期。日期、地点、参会人和plainva.pim标记由Plainva在模板之后自行写入属性——任何模板都无法破坏与日程的关联。如果模板包含提问({{prompt:…}}),会在首次创建笔记时询问;取消后不会创建笔记。

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

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

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

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

完成,以及到不了笔记的更改。 在没有复选框列的数据库中,名称表示完成的状态选项——已完成、Done 等——无论排在哪里都算完成;如果没有这样的选项,则最后一个选项算完成。最后一个选项和任何已取消的选项都算作已关闭,绝不会在提供方重新打开任务;介于两者之间的选项保持未完成。如果提供方的更改无法写入对应笔记——向没有完成列的数据库打勾,向没有日期列的数据库写截止日期——Plainva 不会把它算作已采用:任务视图上方的一行会说明是哪个列表以及原因,等数据库能容纳时更改就会到达。同步失败的任务列表也会显示在同一行,桌面和手机都是如此,其他列表照常同步。

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

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

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

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

笔记以任务命名。 新同步的任务以其标题作为文件名,同名任务像其他笔记一样编号(“购物 2”),服务商处的新标题不会重命名文件。详见任务。2026 年 9 月 12 日至 24 日版本留下的带标识符名称,任务视图会提供一次整理。

重新连接不会再产生重复。 当你重新登录某个账户、在第二台设备上设置好Plainva,或者搜索索引被重建时,Plainva会通过同一个标记识别出已有的笔记并直接沿用它们,而不是把这些任务再导入一次。仓库仍在同步期间,不会创建任何任务笔记——否则一篇还在传输途中的笔记,恰恰就会变成这样一个重复项。旧版本留下的副本可以清理:当任务重复存在时,任务视图会显示 重复存在的任务 和 查看。Plainva 保留它正在同步的那条笔记,只移除没有自己内容的副本——已完成,或与保留的笔记内容相同,并且没有自己的文字;其他副本一律保留,并列出来供你查看,每个被移除的副本都会先保存到版本历史中。服务商那边的任务不会受到任何影响。如果只剩下带有自己内容的副本,可以用 隐藏此提示 收起提示;一旦有副本新增或消失,提示会再次出现。在服务商处重复的任务(例如每天重复的 Google 任务)在那边是同一个任务:勾选即完成,随后服务商会用下一个日期重新打开同一个任务——Plainva 如实反映这一点,并且在看到该任务再次出现一次之后,会在它所在的行显示 在服务商处重复。

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

通过在其他日历中占用创建的副本是其日程的镜像。移动或更改日程时,它的占用会跟着变:时间始终跟随;标题、地点和说明只有含详情的占用才跟随。提示会说明有多少占用一同变更,并提供撤销;服务商不允许更改的占用,会连同其日历一起列出。删除日程时,Plainva 会询问是否同时删除占用(默认是)。如果移动或更改的是占用本身,Plainva 会询问一次:仅移动此占用(它将成为独立条目,日程不变)或移动日程(日程及其所有占用都会采用此更改);对于他人的邀请,不提供第二个选项。关联以双向方式保存在服务商(Google、Microsoft、CalDAV)处:占用知道它的日程,日程也知道它的占用,因此 Plainva 也能找到已隐藏日历中的占用。日程和占用上都会显示链接图标,桌面端和手机端相同。限制:在 Plainva 之外对日程所做的更改不会传给占用;对于重复日程,只有当占用所在的日历处于显示状态时,单次日程才会被跟随(否则提示会指出);设备日历不保存关联。

电脑上的提醒

在设置 → 日历 → 提醒中打开提醒日程;第一次时系统会询问一次权限。日程自带的提醒优先——只有在它没有指定时才使用提前时间,全天日程则在全天日程中选定的时刻出声。到期任务会把任务数据库里的任务一并纳入,仅这些日历限定提醒的来源(什么都不勾选即表示全部,之后新连接的日历也会自动包含在内)。没有时间的任务紧挨在下方:任务的截止日期是当天本身,而不是前一天晚上——因此它有自己的规则(日期和时间可自由选择,默认设置为截止日当天的 09:00)。以前它借用的是全天日程的规则,也就是说它会在前一天晚上 19:00 提醒一次,此后再也不会提醒,也没有任何地方说明原因。截止值带有时间的任务会在那个时间提醒,在带时间的任务下有自己的提前量(默认是到时间时)——以前它借用的是日程的提前量。在笔记中,remind: off或remind: 30可以为单个任务设置例外。手机端的提醒提供标记完成、1 小时后和明天早上;这两个“稍后”按钮只会调整此设备上的这一条提醒,不会影响任务本身。全天日程这一行现在也可以接受任意时刻,而不再局限于两种固定组合;这两行下方都会写出相应的说明文字。

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

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

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

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

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

在后台继续运行

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

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

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

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

在日历中显示数据库

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

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

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

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

把数据库条目写入日历

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

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

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

清晰的设置步骤

直接为相应账户添加文件、日历或邮箱。Plainva 会检查所选登录并请求缺少的权限。

移动端助手直接打开相应连接。登录后选择日历和任务列表,即可查看结果。

打开云账户,选择现有账户,在缺少的服务旁点击添加。现有服务保持连接。Gmail 继续使用独立的邮箱登录或应用专用密码。取消助手不会断开已完成的连接。移动文件迁移保留源库,优先考虑匹配的现有目标库,否则准备独立容器。同名冲突文件会逐一比较,并保留双方内容。加密目标通过现有配对流程打开。

Google — 自己的应用注册

点击日历顶部的日期范围以选择日期。圆点按所设文件夹和文件名格式标记已有日记,文件名中的点号也会保留。选择日期后,点击跳转到日期或打开日记/创建日记。创建时使用与侧栏及“今天”视图相同的模板。切换月份或修改笔记后,标记会更新。跨日事件保持固定行,从开始日期向右延伸;可见范围以外的日期会被裁切。