一款 Obsidian 插件,用于在 Obsidian 笔记中实现 Google 日历 事件的可视化和操作。
注意:
- 本插件依赖 Dataview 插件来列举指定日期范围内的任务。在使用本插件前,请确保您已安装 Dataview 插件。
- 我们的任务格式借鉴了 tasks,但我们目前不支持重复任务。
- 要将任务从 Obsidian 同步到日历中,您需要将开始时间元素附加到任务上(即 🛫 YYYY-MM-DD),然后单击同步图标或调用“Sync with Calendar”命令。
- 我们的任务同步是以日历事件为中心的,这意味着在将任务从 Obsidian 同步到日历后,在 Obsidian 中对任务进行的修改不会同步到日历中。要进一步修改日程安排,您需要直接在日历中进行修改。稍后,对日历中进行的更改将自动同步回 Obsidian。
- 此插件仍处于早期 alpha 版本,随时可能更改!
- 我很清楚 google calendar 在国内的使用体验不佳,但是 Microsoft 提供的接口真的一言难尽...
- 您需要一个 Google 日历凭据文件。您可以自己申请(放轻松,很简单~):
- 参考Google 的指南创建 Google Cloud 项目
- 参考启用 API 指南启用您的 Google 日历 API。
- 配置 OA 屏幕
- 准备获取您的 OA 凭据
- 选择“桌面应用程序”
- 为此 OA 应用程序输入名称。
- 下载 OAClient 凭据文件。
- 将凭据文件放置在
VaultFolder/.obsidian/calendar.sync.credentials.json
中
- 从发布页面下载
main.js
、styles.css
和manifest.json
。 - 将下载的文件复制到
VaultFolder/.obsidian/plugins/your-plugin-id/
。
注意:您也可以自己编译此插件:
- 克隆此存储库。
- 运行
npm i
或yarn
安装依赖项。 - 运行
npm run dev
以启动监视模式下的编译。
- 通过 Obsidian 的社区插件浏览器安装插件.
- 在 Obsidian 中启用插件。
- 在任何笔记中放置以下代码块:
```sync-calendar name: "{numberTodos} todos @ Apr. 21" timeMin: "2023-04-21" timeMax: "2023-04-22" ```
- 切换到预览模式,插件将使用查询结果替换此代码块。
如果您正在同步您的 vault,出于安全原因,我建议您明确忽略 VaultFolder/.obsidian/calendar.sync.token.json
文件(如果可能)。
以下是此插件的输入参数:
Name | Type | Description | Default |
---|---|---|---|
name |
string | 查询的标题。您可以使用 {numberTodos} 模板,该模板将被查询返回的待办事项数量替换。 |
"{numberTodos} todos in calendar" |
timeMin |
string | 符合 moment.js 格式的字符串,事件的最小时间(包括 timeMin )。 |
基于查询时间向前四周 |
timeMax |
string | 符合 moment.js 格式的字符串,事件的最大时间(不包括 timeMax )。 |
null |
refreshInterval |
number | 自动刷新的时间间隔(以秒为单位),设置为 -1 时可以禁用自动刷新。 |
10 |
Note: 关于抓取时间:例如有一个 event 其时间跨度为 "2023-04-21 14:00"- "2023-04-21 16:00",如果在抓取中不希望这个 event 显示,则应该指定 timeMin: 2023-04-21 16:00
。
Note: timeMin
和 timeMax
会被 moment.js 解析,使用满足 moment.js 的字符串均可被解析, 例如:
- "2023-04-21"
- "2023-04-21 16:00"
- "2023-04-21T08:00:00.000Z"
Note: sort
,filter
,group
将在下一个版本推出,同时非常欢迎您提交 Pull Request。
目前,仅支持一个命令,用于手动触发从Obsidian到Calendar的任务同步。
Sync with Calendar
:
此命令将获取Obsidian中具有startDate(即🛫 YYYY-MM-DD)的任务。
代码虽然不多,但也花了我近两周的时间,今天分享给大家。如果您能提供一瓶阔乐的赞助,就是我持续更新的动力和赞赏!