日历与外部任务
更新日期:2026-09-11
Plainva可以连接你已有的日历和任务账户——CalDAV(Nextcloud、Fastmail、mailbox.org等)、Google(日历+Tasks)和Microsoft(Outlook日历+To Do)——并在两个方向上与它们协同工作。你的笔记始终是中心:日程可以变成会议笔记,外部任务列表则会作为普通笔记映射进你的默认任务数据库。
实验性功能。 日历会与真实的外部账户(CalDAV、Google和Microsoft)通信,而这些无法在Plainva的自动化测试中演练。它可以正常工作,而且每天都在使用,但请把它当作预览版:请保留一份备份,并报告任何看起来不对劲的地方。
连接一个账户
打开设置 → 仓库 → 云账户 → 连接账户…,选择一个服务商,并在服务选择步骤中勾选日历与任务:
- Nextcloud / CalDAV:服务器地址、用户名和一个应用专用密码(在Nextcloud中:设置 → 安全 → 设备和会话)。无需注册,也不需要密钥——对于Nextcloud,Plainva会直接从服务器地址推导出CalDAV地址(对于其他CalDAV服务器,请使用WebDAV / CalDAV图块,或高级:分别设置各个端点)。
- Apple iCloud、Yahoo、AOL、Zoho、Fastmail、mailbox.org、Yandex、Mail.ru:专属图块,已预先填好日历地址——只需邮箱地址加一个应用专用密码即可,无需服务器字段(对Apple来说应用专用密码是必需的;助手会链接到该服务商的指南)。提示:Yahoo自己也承认其CalDAV服务不太稳定——如果它出现异常,并不是Plainva的问题。
- 此设备上(仅手机):设备已识别的日历——iCloud、Exchange、通过系统账户的 Google、本地日历——作为一个无需登录的账户。轻点会请求系统权限(完全访问,因为 Plainva 也会创建日程);在 iOS 上,提醒事项列表会作为任务列表加入,Android 没有系统任务存储。每台手机最多一个设备账户,它不会随设置同步传播,同一个日历也可能同时通过云账户连接——Plainva 不会合并两者。
- Google:需要你自己的OAuth客户端ID(与Google Drive同步相同的自备凭据(BYO)模式——参见Drive指南)。此外,请在你的Google Cloud项目中启用Google Calendar API和Google Tasks API,并在同意屏幕中添加它们的权限范围。浏览器会打开以获取同意;连接操作会在保存任何内容之前先验证账户。
- Microsoft:只需点击使用 Microsoft 登录…并在浏览器中确认——无需任何设置。一个Microsoft账户还可以在同一次连接中承担文件(OneDrive)和邮件。
助手会显示每项服务的状态(“已连接——找到 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 + 鼠标滚轮)同样可以翻页——每次滑动一个时段。
空间不足时,日期选择器下方的键盘提示会自动换行;年份导航、全部七个星期列和今天按钮始终完整显示在选择器内。
- 新建日程:点击时间网格中的空白位置会打开一个小巧的快速新建弹窗(标题、时间、日历、地点)——保存会立即创建,更多选项会打开完整的日程对话框。在网格上拖动可以设置持续时长。顶部的**+会打开完整的对话框:标题、日历、日期/时间或一个全天区间、地点、说明(一个格式化编辑器——Markdown,输入“/”调用命令;来自 Google/Outlook 的格式化说明会以可读形式显示,而不是原始 HTML 代码,格式化的说明发送时也会保留格式)、颜色、参与者,以及一个可选的 Outlook 风格重复**。这个颜色只对该日程本身生效,会覆盖它所属日历的颜色(对 Microsoft 账户没有影响——Outlook 不支持逐日程设置颜色)。 在手机上,日程颜色可在日程面板中通过同一个色格选择。
- 参与者:输入一个电子邮件地址并按回车(或逗号)将其添加为标签;点击×可以移除。重复选项就在日期/时间旁边设置——可以选择频率、间隔、星期几(每周重复时可选),以及结束方式(永不 / 于某天 / 重复 N 次后);你也可以为已有日程添加或更改重复规则。
- 查看:点击某个日程会打开事件预览——一个自由悬浮的窗口,用于查看该日程而不是编辑它:时间段、地点、说明、参与者及其回复,此外还有接受 / 暂定 / 拒绝、会议笔记,以及**⋮下的所有其余操作(颜色、在其他日历中占用、通过邮件发送、删除)。该窗口不会让应用变暗,可以移动和调整大小;Esc将其关闭。如果该日程属于一个系列**,预览会说明这一点——包括重复规律,以及在已加载的情况下的下一次日程。它不会询问任何问题:“只这一个还是全部?“问的是编辑,而不是查看。
- 编辑 / 删除:编辑日程在预览中会打开对话框,预填其现有信息,并带有会议笔记和删除操作。更改会经过一项安全检查后被写入服务商:如果该日程在此期间已在远端发生变化,Plainva会刷新,而不是覆盖。 对于单个日程,对话框还提供日历选择器——选择另一个日历后,该日程会被移动到那里(在目标日历中新建,从源日历中删除;它会获得新的服务商标识)。
- 重复日程:系列中的一个日程和其他日程一样可以直接打开编辑——只有在你确实做了更改之后,问题才会在保存时出现。对话框会说明具体更改了什么(“时间:09:00 → 09:15”),然后询问应该应用于仅此日程,还是所有日程。选择”所有日程”,只有你更改过的内容才会同步到整个系列;系列自身的开始日期,以及你没有动过的一切,都会保持不变。如果你没做任何更改就关闭表单,那就什么都不会发生——没有对话框,也不会写入服务商。删除仍然会提前询问:在那里,点击本身就已经是更改。
- 移动 / 调整大小:你可以直接在时间网格中拖动日程——拖动日程主体会重新安排其时间(在周/3天视图中也可以拖到另一天),拖动它的下边缘则会更改持续时长。新的时间会立即写入服务商(重复日程目前仍只能通过对话框进行编辑)。
- 日程的外观:已取消的日程仍然可见,但只显示为轮廓,标题加删除线——这样你能看到那段时间空下来了,而不是默默地失去它。你尚未回复的邀请也是轮廓(它还不是你的日程);待定的日程——组织者这样标记,或者你回复了“也许”——则以斜纹显示。已确认的依旧填充。日程列表中还会加上词(已取消、未回复、待定)。如果你拒绝了,日程会变成淡化的轮廓,标题加删除线(日程列表中显示你已拒绝):它对其他人仍然举行,但不再属于你的一天。组织者的取消依旧更清晰——那影响所有人。
- RSVP与回复:当你受邀参加某个日程时,对话框会让你接受、标记为暂定或拒绝——Plainva会通过服务商(Google/Microsoft/CalDAV)发送你的回复。参会人列表会显示谁已接受或拒绝(这是回复信息的接收端)。
- 邮件邀请:当日程带有参与者时,勾选通过电子邮件通知参与者。在Google上,Plainva会请求Google发送其原生邀请(仍是同一个日程,因此对方的回复会同步回你的日程);Microsoft会自动通知参与者。对于CalDAV——或者想从自己的邮箱发送一份副本——日历的通过邮件发送操作会打开邮件撰写窗口,并附上一份符合标准的iCalendar邀请文件,这样Gmail和其他邮件客户端就会把它显示为带有是/也许/否选项的日程。
- 在其他日历中占用:日程上的复制图标操作(或其对话框中的在其他日历中占用按钮)会把它镜像到你的一个或多个其他可写日历中——可以作为不透明的忙碌占位符,也可以含详情(Notion Calendar风格)。重复日程会连同其重复规则一起镜像,因此占用条目也会跟着重复。 如果在某个日历中失败,提示会按日历给出提供商返回的原因;如果账户缺少权限,会提供 重新登录 并直接带你进入该账户。 在手机上,同样的操作位于日程预览中:先选择日历,再选择忙碌或含详情。
- 重复日程带有一个重复徽章。编辑或删除某一次实例时,Plainva会询问**“仅此日程”(创建一个例外,即跳过这一次)还是”所有日程”**(更改整个系列)。Plainva绝不会重写已有的重复规则。
- 显示任务(刷新按钮旁,仅当设置了默认任务数据库时出现):把你默认任务数据库中带截止日期的条目叠加显示在时间网格的条带和月历网格上。默认关闭,你的选择会按设备记住。 如果截止列带有时间(列类型为“日期和时间”),该任务会显示在当天网格中它所属的时刻,而不是全天条——用虚线边框而非填充,因为截止是一个时刻而不是一段时长,复选框就在方块内。没有时间时一切照旧。
- 点击复选框即可直接在这里勾选完成该任务——无需打开笔记。点击标题仍会打开笔记。勾选完成会写入与任务视图相同的文件:如果任务带有重复设置,届时会创建下一个任务。
- 任务的着色方式与日程不同。 已结束的日程会显示得更暗淡;而已逾期的任务则更为紧急,会被突出显示。今天到期的任务正常显示,未来的任务显示得暗淡,已完成的任务带删除线。
- 该行上的重复图标表示这个任务带有重复设置。尽管如此,它在日历中仍然只会出现一次——原因见任务。
独立窗口中的日历
在操作栏中右键点击日历,可以将其在一个独立窗口中打开——放在你正在写的笔记旁边会很方便。之后再次点击该项,那个窗口就会被带到最前面,而不是打开第二个日历。
命令面板提供打开通讯窗口:一个窗口中并排显示邮件和日历。更多内容见快速上手。
日程 → 会议笔记
任意日程上的笔记图标会创建(或重新打开)它的会议笔记——一篇存放在你会议文件夹中的普通笔记,命名为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。
第二个开关会自证。 并非每种桌面环境都提供通知区域,而图标是否真的出现也无法可靠预测。因此 Plainva 会先把图标放上去,再问你是否看得到。只有回答“看到了”才保留该设置;回答“没有”时图标会被撤下,开关保持关闭。这样窗口就绝不会在没有回头路的情况下消失。下次启动时同样如此:如果那时图标无法创建,该设置会自行关闭。
下方的提醒出现的条件一行随时说明当前情况——Plainva 运行期间或窗口关闭时也会出现。
需要知道: Plainva 在后台继续运行时,同步、日历刷新和备份检查也在继续。下次打开时仓库已是最新——应用在你看不见的时候仍在工作。
在日历中显示数据库
日历可以把数据库中的条目与日程一同显示。视图上方的显示:栏列出每一个指定了日期列、类型为日历或时间线的 .base 视图。点击一次显示,再点一次隐藏。
这样显示的条目始终能被认出是笔记:虚线边、前面一个菱形,绝不使用日程那种实心样式。点击打开的正是数据库行本来就有的预览。拖到另一天会写入该笔记的日期列——与在表格中编辑该单元格完全相同。若该列带有时间,条目会落在当日网格的对应小时;没有时间则留在全天区。
显示哪些视图属于该 vault,并随设置同步一起传递:你的日历在电脑和手机上是一样的。
**反过来也一样:**在数据库的日历视图中,背景中的日程按钮会把当天真正的日程显示为一行淡色文字——让你看清自己在对着什么安排。它们有意只作背景:不是该数据库的行,也不可点击。
把数据库条目写入日历
带日期的条目可以变成服务商处的真实日程。条目所在行的菜单(手机上是它的操作面板)提供添加到日历。日程会采用该条目的日期——若该列带时间就带上时间,否则作为全天日程——并附带一个指回笔记的链接。
此后两者保持关联,遵循三条固定规则:
- 在 Google、Outlook 或 CalDAV 服务器上移动该日程,笔记的日期列会随之改变。
- 删除该笔记时,删除对话框会说明它与日程相关联。日程会保留在你的服务商处——Plainva 绝不会顺带删除它。
- 删除该日程时,只有关联消失。笔记及其日期原封不动。
这和给任务预留时间不是一回事:那里你是为某件事预留时间,任务的日期原地不动。这里你说的是:这个条目就是这个日程。