Google Calendar 節點中刪除事件的問題

描述問題/錯誤/問題

錯誤訊息是什麼(如有)? 我在 Google Calendar 中取消預約時遇到了一些困難。Google Calendar 中的刪除事件節點顯示找不到該資訊或 404 not found,類似這樣的錯誤。我需要立即幫助

請分享您的工作流程

(選擇畫布上的節點,並使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 複製並貼上工作流程。)

分享最後一個節點返回的輸出

{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “c07ee3f2-2f97-48a3-a1eb-51325b5543af”,
“responseMode”: “responseNode”,
“options”: {}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
96,
32
],
“id”: “1c3cf015-4ef8-4459-bd00-f375d9d78e10”,
“name”: “Webhook”,
“webhookId”: “c07ee3f2-2f97-48a3-a1eb-51325b5543af”
}
],
“connections”: {
“Webhook”: {
“main”: [

]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “1ed05c6c1071fd3e7f8855acb4846b43bfa9c1970632a2d20fc7715336613583”
}
}n8n 設定的資訊

{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “c07ee3f2-2f97-48a3-a1eb-51325b5543af”,
“responseMode”: “responseNode”,
“options”: {}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
96,
32
],
“id”: “1c3cf015-4ef8-4459-bd00-f375d9d78e10”,
“name”: “Webhook”,
“webhookId”: “c07ee3f2-2f97-48a3-a1eb-51325b5543af”
}
],
“connections”: {
“Webhook”: {
“main”: [

]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “1ed05c6c1071fd3e7f8855acb4846b43bfa9c1970632a2d20fc7715336613583”
}
}n8n 版本:

  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設定(預設:own、main):
  • 透過以下方式執行 n8n(Docker、npm、n8n cloud、桌面應用程式):
  • 作業系統:

@shadrach_Shand

由於您分享的 JSON 只包含 Webhook 節點,而不包含 Google Calendar 節點,我無法確切看到您的配置方式。請檢查以下錯誤及其修復方法:

1)「事件 ID」是由 Google 生成的長而獨特的字串(例如 7p2...)。

  • **錯誤:**使用內部資料庫 ID 或來自其他系統的「會議 ID」,而不是實際的 Google Calendar 事件 ID
  • **修復:**確保傳入「事件 ID」欄位的值正確是由工作流程中較早的「取得事件」或「列出事件」節點傳回的值。

2)如果事件存在於次要或共享日曆上,但節點設定為您的「主要」日曆,Google 將傳回 404 錯誤,因為它在錯誤的位置尋找該事件 ID。

  • 修復:檢查您節點中的日曆欄位。如果事件不在您的主要日曆上,請確保您從下拉清單中選擇了正確的日曆,或提供了正確的日曆 ID(通常是電子郵件地址)。

3)如果工作流程執行了兩次,或另一個程序已經移除了該事件,第二次嘗試刪除它將導致 404 錯誤。

  • **修復:**檢查您的 Google Calendar 垃圾桶,確認該事件是否已被刪除。

4)如果您使用運算式從 Webhook 或另一個節點對應 ID,字串末尾可能會有隱藏的空格或換行字元。

  • **修復:**嘗試在運算式中使用 .trim()
    範例: {{ $json.eventId.trim() }}

嘿抱歉我花了這麼久才回應,問題是在 Google Calendar 節點中刪除事件,AI 代理很難從「在 Google Calendar 節點中取得事件」工具中提取事件 ID。所以它無法刪除該事件,因為它無法提取 ID。我不知道還有什麼其他方法可以提示它

AI 代理可能不一致。如果這是一個關鍵業務流程,不要讓 AI 代理在內部處理「刪除」邏輯。而是:

  1. 建立單獨的「取消工作流程」:此工作流程應將 eventId 作為輸入並執行刪除。
  2. 將其公開為工具:為 AI 代理提供一個名為 cancel_appointment 的工具。
  3. 簡化工具的工作:不讓代理「獲取」然後「刪除」,cancel_appointment 工具應通過標準 n8n 節點在內部處理查詢和刪除。

來自 kjooleng 的取消工作流程模式是正確的方向。有一個有助於 AI 代理可靠地提取事件 ID 的做法:當你將「Get Event」節點公開為工具時,在工具描述中明確告訴 AI,回應中的 id 欄位是它需要傳遞給刪除工具的內容——不是 iCalUID,不是 summary,只是 id

同時檢查你的「List Events」節點輸出是否包含重複發生的事件實例。這些事件具有複合 ID,如 eventId_date(例如 abc123_20250721T090000Z)。如果代理移除或截斷該後綴,即使基本事件存在,刪除也會失敗並顯示 404。

最簡單的測試:在非代理工作流程中,手動連接「Get Event」→「Delete Event」,並確認 id 值正確流動。一旦你驗證了該路徑有效,代理版本應該也會有效。

感謝您讓我們了解這一點,我們已建立 CV-20 作為內部開發工單來進行調查。