开发了一款 Obsidian 日记同步日历插件:Diary ICS
最近开发了一款 Obsidian 插件——Diary ICS,主要解决 Obsidian 日记内容与系统日历同步的问题。
核心功能
ICS 日历订阅生成
插件会基于日记内容自动生成 ICS 格式文件,通过本地 HTTP 服务器(默认端口 19347)提供订阅链接(如http://127.0.0.1:19347/feed.ics),支持局域网内其他设备订阅。日记内容解析规则
- 提取指定级别标题(一级或二级,可配置)作为日历事件
- 标题包含时间(如
19:00或10:00~12:00)时,自动解析为事件时间;无时间则视为全天事件 - 事件包含跳转链接(
obsidian://协议),点击可直接打开对应日记 - 子标题内容会作为事件备注
Frontmatter 支持
可将日记的属性字段(frontmatter)作为独立事件同步,支持自定义标题和内容模板(如天气:{{weather}} 心情:{{mood}})。
使用流程
- 安装并启用插件
- 在设置中配置:
- 标题提取级别
- 服务器端口
- 日记文件格式与存放路径(默认
YYYY-MM-DD命名)
- 复制插件生成的 ICS 链接
- 在系统日历(macOS 日历、Windows 日历等)中添加订阅
技术实现
- 基于 TypeScript 开发,使用
ics库生成标准日历文件 - 本地 HTTP 服务提供实时订阅能力
- 解析 Obsidian 元数据缓存获取标题结构,避免重复读取文件
下载与反馈
源码地址:github.com/mousebomb/obsidian-diary-ics
支持 Obsidian 0.15.0 及以上版本,欢迎提交 Issue 反馈问题。