OpenClaw Node 日曆(Calendar)功能完整攻略|初學者指南

OpenClaw Node 日曆(Calendar)功能完整攻略

這是給 OpenClaw 初學者的教學文章,幫助你了解如何使用 OpenClaw Node 的日曆功能。

>

測試日期:2026-04-19
測試節點:V2514(Vivo V2514, Android 16)
OpenClaw 版本:ui v2026.4.17-dev

一、什麼是 OpenClaw Node 的日曆功能?

想像一下

你是一個業務員,每天要記錄很多客戶拜訪行程。你希望有一個 AI 助手可以幫你:

  • 📅 查看下週有哪些約會
  • 📱 快速新增一個會議到日曆
  • ⏰ 在約會前提醒你

OpenClaw Node 的日曆功能,就是讓 AI 助手可以讀取新增你手機上的日曆事件。


二、日曆功能有哪些指令?

根據我們的實際測試,Android 上的 Calendar 功能只有 2 個指令

指令功能危險程度
calendar.events讀取日曆事件✅ 普通(預設允許)
calendar.add新增日曆事件⚠️ 危險(需手動開啟)

為什麼只有這兩個?

OpenClaw 的設計理念是「最小權限原則」:

  • 讀取功能預設開啟,因為你需要 AI 幫你查資料
  • 寫入功能(新增)預設關閉,因為修改資料風險較高
  • 沒有刪除和修改功能,避免 AI 誤刪重要行程

三、如何開啟日曆寫入功能?

步驟一:找到設定檔

OpenClaw 的設定檔位於:

~/.openclaw/openclaw.json

步驟二:新增 calendar.add 到允許清單

打開設定檔,找到 gateway.nodes.allowCommands 部分,加入 "calendar.add"

"nodes": {
  "allowCommands": [
    "screen.record",
    "camera.snap",
    "camera.clip",
    "calendar.add"      // <-- 新增這一行
  ]
}

步驟三:重啟 Gateway

openclaw gateway restart

四、calendar.events 指令詳解

基本用法

# 取得所有日曆事件
openclaw nodes invoke --node "V2514" --command calendar.events --params '{}'

實際回傳範例

{
  "ok": true,
  "payload": {
    "events": [
      {
        "identifier": "329",
        "title": "[私人行程已遮蔽]",
        "startISO": "2026-04-25T00:00:00Z",
        "endISO": "2026-04-26T00:00:00Z",
        "isAllDay": true,
        "calendarTitle": "your-email@gmail.com"
      }
    ]
  }
}

回傳欄位說明

欄位說明範例
identifier事件的唯一 ID"329"
title事件標題"回台中與姐吃飯"
startISO開始時間(ISO 格式)"2026-04-25T00:00:00Z"
endISO結束時間(ISO 格式)"2026-04-26T00:00:00Z"
isAllDay是否為全天事件true
calendarTitle所屬日曆名稱"esisterebbb@gmail.com"

五、calendar.add 指令詳解

基本用法

# 新增一個時間事件
openclaw nodes invoke --node "V2514" --command calendar.add --params '{
  "title": "與客戶開會",
  "startISO": "2026-05-01T10:00:00Z",
  "endISO": "2026-05-01T11:00:00Z"
}'

進階用法:全天事件

# 新增一個全天事件
openclaw nodes invoke --node "V2514" --command calendar.add --params '{
  "title": "放假一天",
  "startISO": "2026-05-01T00:00:00Z",
  "endISO": "2026-05-02T00:00:00Z",
  "isAllDay": true
}'

進階用法:帶地點和備註

# 新增帶地點的事件
openclaw nodes invoke --node "V2514" --command calendar.add --params '{
  "title": "台北出差",
  "startISO": "2026-05-10T09:00:00Z",
  "endISO": "2026-05-10T18:00:00Z",
  "location": "台北市信義區",
  "notes": "拜訪重要客戶"
}'

參數說明

參數必填說明範例
title✅ 是事件標題"與客戶開會"
startISO✅ 是開始時間(ISO 格式)"2026-05-01T10:00:00Z"
endISO✅ 是結束時間(ISO 格式)"2026-05-01T11:00:00Z"
isAllDay是否為全天事件truefalse
location地點"台北市信義區"
notes備註"這是備註"

六、實用應用場景

場景一:自然語言新增行程

結合 AI 的自然語言理解能力,你可以說:

「幫我在下週三下午兩點新增一個會議」

AI 會自動幫你轉換成 calendar.add 指令執行。

場景二:每日行程提醒

設定一個 cron 工作,每天早上 8 點幫你查詢當天的行程,然後發送到 Telegram 提醒你。

場景三:行程衝突檢查

在新增行程前,先用 calendar.events 查詢是否有時間衝突。


七、疑難排解

Q: 新增的事件不會出現?

可能原因:

  1. 事件被新增到不同的日曆(如另一個 Google 帳號)
  2. 日曆同步延遲

解決方法:

  • 檢查回傳的 calendarTitle 確認是哪個日曆
  • 在手機上開啟該日曆的同步功能

Q: 收到「permission denied」錯誤?

可能原因:

  • Android 系統尚未授權日曆權限給 OpenClaw App

解決方法:

  1. 打開手機「設定」
  2. 找到「應用程式」→「OpenClaw」
  3. 點擊「權限」
  4. 確認「日曆」權限已開啟

Q: calendar.add 顯示「not in allowlist」?

可能原因:

  • Gateway 尚未開啟此危險指令

解決方法:

參考本文第三章,重新設定 ~/.openclaw/openclaw.json 並重啟 Gateway。


八、限制與注意事項

目前已知限制

限制說明
無法刪除事件Android 版沒有 calendar.delete
無法修改事件Android 版沒有 calendar.update
無法列出所有日曆沒有 calendar.list
篩選參數可能無效fromtoallDay 在某些版本可能不完全作用

安全注意事項

  1. 只開啟需要的指令 — 如果不需要新增日曆,就不要開啟 calendar.add
  2. 定期檢查日曆 — 確認沒有被新增奇怪的行程
  3. 確認事件來源 — 收到陌生行程要提高警覺

九、相關資源

  • [OpenClaw 官方文件](https://docs.openclaw.ai/)
  • [OpenClaw Node 指令總覽](./openclaw-android-node-commands.md)
  • [OpenClaw 危險指令指南](./openclaw-android-dangerous-commands-guide.md)

總結

項目內容
可用指令calendar.eventscalendar.add
預設狀態calendar.events 自動允許,calendar.add 需手動開啟
支援平台iOS、Android、macOS
無刪除/修改基於安全考量,設計精簡

文章更新:2026-04-19

留言