从内测版本到现在,我已经和 Obsidian 相伴好多年了。一路走来,我经历了把它当作 Typora 继任者的单纯 markdown 编辑器阶段,也经历了"折腾大于记录"的插件狂魔阶段,还经历了删掉一切非刚需插件、只留下 Tasks、Dataview、Templater、QuickAdd、Style Settings 几个核心玩具的极简阶段。Obsidian 陪着我踩过本科的期末周,也陪着我撑完研究生的毕业季,如今它已经是我生活和工作的中枢:知识库、行程、阅读、观影、健身……ALL IN ONE。
那根一直扎在心里的小刺
可惜的是,唯独"日程可视化"这块一直像心里的一根小刺。
全局任务我交给 Tasks,查询交给 Dataview,整个工作流已经足够顺畅。可一旦要拉开一个真正可读的甘特图去安排项目,或者对齐第三方日历时,Obsidian 里就像突然缺了点什么。我需要的不是一个单纯的日历插件,而是一个能把散落在笔记里的任务重新串成清晰时间线的工具。
曾经我和 Task Genius 较劲了整整一周。它足够强大,功能也很全面,可就是和我的工作流完全对不上节奏。每次想快速创建一个任务,都要在多层菜单里跳来跳去;想看项目排期,却发现甘特图和我用了这么久的 Tasks 语法完全是两套系统。我开始意识到,我需要的是一个能跟 Tasks 语言对话、跟 Dataview 互通的插件,一个我自己也能看得懂、不会迷失在菜单里的甘特图。
这就是我想解决的核心问题:如何在不破坏现有工作流的前提下,为 Obsidian 补上直觉化的日程可视化能力?
在纸上画出的第一根横线
于是这个插件的故事开始了。
去年秋天,我在调 SOC 验证脚本的间隙,拿笔在纸上画了几根横线。我列出了四个核心需求:
-
日、周、月、年四个视图要像 macOS 日历那样切换顺滑
-
周视图要能重叠任务,不要为了冲突硬拆成两列
-
独立的甘特视图要像 Notion 或飞书多维表一样,可以无限左右拉开,把跨月的研究排期一眼望穿
-
长按拖动就创建任务,完全兼容 Tasks 的全局过滤
我把这张纸拍了照,贴在每日页面上,告诉自己:“既然没人做,那就自己造。”
第一版是一个周末的作品:我让插件直接扫描整个库的 Tasks 语法,无需额外的 .md 数据仓,读到的任务立刻映射到日历四视图里。那时候的甘特图还只有当前月份,导航也只是简单的左右键,但我第一次在 Obsidian 里拖动一条跨多天的条形块时,心里那种"终于对了"的感觉让我激动了一整晚。
深夜两点的魔法时刻
最难忘的瞬间发生在深夜两点。
我在日视图里长按上午十点,希望能复制实验室的一段会议。手指刚松开,一个预填了时间的 TaskModal 就弹了出来,标题栏里静静躺着"task-"前缀的 ID。那一刻我意识到,这不仅仅是一个"UI 更好看"的日程插件,它真正读懂了我在 Obsidian 里写下的每一条任务,并且用我熟悉的方式回馈给我。
这才是我想要的:一个懂 Tasks 语法,能无缝融入现有工作流,却又能把时间可视化的插件。
从草图到实现:四个视图和一个甘特图
现在的版本,已经实现了当初纸上画下的所有设想。
周视图:让任务自然重叠
在周视图里,任务可以自然重叠显示,不会因为时间冲突就被硬生生拆成两列。你可以一眼看清这一周的所有安排,长按任意时间段就能快速创建新任务,上下拖动就能调整时段。
日视图:精确到每个小时
日视图把一天的 24 小时完整展开,每个任务都是一个可以拖动的时间块。无论是早上的晨会,还是下午的实验安排,都能精确定位。这个视图特别适合需要精细管理每日行程的场景。
月视图:项目排期一目了然
月视图让你能从更高的维度审视任务分布。哪些天被安排满了?哪些时间段还有空隙?项目 deadline 是否合理分散?所有这些问题都能在这个视图里找到答案。
年视图:把整年规划装进一屏
年视图是我最喜欢的功能之一。它把全年的任务密度可视化,让你能像鸟瞰地图一样审视自己的时间分配。研究项目的几个关键节点?论文 deadline 的分布?一眼就能看穿。
甘特视图:真正的项目管理利器
甘特视图是整个插件的核心。它可以无限左右拖动时间轴,"今天"按钮会自动把视图拉回当前日期。每个任务都是一条横向的条形块,你可以看到任务的优先级、进度、依赖关系。长按任意一天,横向拖动就能画出新的跨天任务。
最重要的是:所有这些动作背后都还是熟悉的 Tasks 语法。Dataview 依旧能读、QuickAdd 依旧能写,整个工作流一气呵成。没有额外的数据文件,没有割裂的两套系统,你在甘特图里创建的任务,就是你在笔记里写下的那条 - [ ]。
从独自开发到社区反馈
回头看,我只是想补上一块自己心里的空白,却顺便结识了一群在论坛留言、给我提建议的朋友。
有人希望它能同步飞书日历,有人希望能导出周报,还有人单纯说"总算有个看得懂的甘特了"。我把这些愿望写进了 TODO,像以前在课堂上记笔记那样,耐心地一条条排到甘特图上。
插件依旧还在迭代,我也依旧不是专业的前端开发者。但只要 Obsidian 还是我生活的中心,我就会继续把这张时间表画得更大、更清楚。第三方日历同步的接口已经预留好了,ICS 导入导出也在计划中,任务依赖关系的可视化也在逐步完善。
一次真诚的"自造轮子"
如果你也在寻找一款既懂 Tasks 又有直觉化日历体验的插件,欢迎试试这个小作品。
也许它还不能满足所有人的野心,也许它的界面还有很多可以优化的空间,可它确实是我这些年 Obsidian 旅程里,最真诚的一次"自造轮子"。它解决的不是一个抽象的技术问题,而是我每天真实遇到的工作流痛点:如何在不破坏现有笔记系统的前提下,让时间变得可视化、可操作、可管理。
希望它也能帮你把那些散落在笔记里的任务,重新串成一条清晰的时间线。让你的 Obsidian 不仅是一个知识库,更是一个真正的生活和工作中枢。
