lindongyan29 downloadsExport Obsidian - [ ] tasks to a .ics calendar file and open it with the system calendar.
Export Obsidian - [ ] tasks to .ics calendar files and open them with your system calendar app (Google Calendar, Outlook, and other calendars that can import .ics) — on both desktop and mobile.
把 Obsidian 的 - [ ] 任务生成 .ics 日历文件,并用系统日历 App 打开导入(桌面端 / 移动端都支持)。
📅 due date, ⏰ time, (@YYYY-MM-DD HH:MM) reminder syntax, and Dataview [date::].VTIMEZONE generation (full STANDARD + DAYLIGHT rules), so even importers without a timezone database (e.g. desktop Outlook) parse times correctly.VALARM) for every event.This plugin is built for one job: turn the current note's tasks into calendar events with a single tap and let the system calendar app do the rest. No token, no Gist, no whole-vault scan.
本插件只做一件事 —— 把当前这一页的任务一键扔进系统日历,其余交给日历 App 自己处理:无需 Token、无需 Gist、无需全库扫描。
Other plugins in this space fall into three rough approaches, each with different trade-offs:
社区同类插件大致走三条路线,各有取舍:
| 维度 Dimension | 本插件 This plugin | 单字段导出版 Single-field exporters | 全库订阅型 Whole-vault sync |
|---|---|---|---|
| 触发方式 Trigger | 当前页 / 单任务,按需 | 单条笔记的某个 frontmatter 字段 |
全库周期扫描 |
| 输出形式 Output | 直接拉起系统日历 App(Android 一步 / 桌面走系统默认程序) | 写入 vault 子文件夹 .ics/(需手动导入) |
上传 GitHub Gist,生成订阅 URL |
| 移动端 Mobile UX | ✓ Android 一键拉起系统日历(原生桥,事件已预填) △ iOS 待补(当前用 openWithDefaultApp,iOS Obsidian 不暴露此 API) |
△ 走系统分享面板(Android 浏览器原生 / iOS 走 data URL 跳转) | ✕ 需先建 Gist、拷 Token、在日历 App 里手动订阅 URL |
| 弹窗打扰 Interrupts | 0 个(全程后台,无模态) | 1 个(缺日期时弹选择器) | 多个(帮助 / 报告 / 配置向导) |
| 时区 Timezone | ✓ 24 整点时区 + 自动检测 | 仅本地时区 | 仅本地时区 |
| 夏令时 DST | ✓ 内嵌完整 STANDARD + DAYLIGHT | ✗ | ✗(部分需 X-LIC-LOCATION 字符串) |
| 多日期字段 Date fields | 📅 / ⏰ / (@…) / [date::] / 自定义前缀 |
仅一个固定字段 | 📅 任务 + Tasks emoji / Dataview |
| 提醒 Reminder | ✓ VALARM 可配触发时间(免费) | ✗ | 基础(部分锁付费) |
| 重复事件 RRULE | ✗ v0.x 排期中 | ✗ | ✓(部分锁付费) |
| 稳定 UID 去重 Dedup | ✓ 路径 + 标题 FNV-1a 哈希(改标题 UID 会变) | △ 视实现而定 | ✓ 三级(行内 ^blockId 锚点 + occurrence + 64-bit 双 FNV) |
| 日期脱敏 Defang | ✓ 防「智能识别」重复建事件 | ✗ | ✗ |
| 付费层 / 任务上限 Pricing | 免费,无任务上限 | 免费 | 部分有 Pro 付费版(典型 25 任务上限解锁更多功能) |
| 声明式设置 API Settings API | ✓ 1.13+ 声明式 + 旧版 fallback | ✓ 1.13+ 声明式 | ✗ 旧 display() |
| 代码体积 Code size | 23.6 KB(1 个 main.ts,esbuild cjs) | ~12 KB(minify) | ~185 KB(25 个 src 模块分层) |
| 云服务 / 依赖 Cloud / deps | 无,纯离线 | 无 | Gist / Buymeacoffee 之类 |
怎么选 · When to choose
deadline 字段、要批量归档单条 → 单字段导出版。.ics file (under 附件/calendar-sync/) and opens it with your system calendar app.| Syntax | Result |
|---|---|
- [ ] Report 📅 2026-09-05 |
all-day event on 2026-09-05 |
- [ ] Report (@2026-09-05) |
all-day event on 2026-09-05 |
- [ ] Visit [date:: 2026-09-05] |
all-day event on 2026-09-05 |
- [ ] Workout 📅 2026-09-05 ⏰ 15:00 |
timed event 15:00–16:00 |
- [ ] Call (@2026-09-05 15:00) |
timed event 15:00–16:00 |
| Setting | Default |
|---|---|
| Timezone (auto / 24 fixed zones) | auto |
| Default event duration (minutes) | 60 |
| Timed reminder lead (minutes) | 0 (at start) |
| All-day reminder time (hour) | 9 |
| Defang dates in description | on |
Search for "Export ICS Schedule" in Settings → Community plugins (once published).
Copy main.js, manifest.json, and styles.css into .obsidian/plugins/export-ics-schedule/, then enable it in Settings → Community plugins.
MIT