前面的開發已經完成 Google Calendar API 串接與新增行程功能。這三天接著完成:
/list 指令,查詢行程。/delete 指令,刪除指定行程。專案使用 Node.js、discord.js、Google Calendar API 與 OAuth 2.0,目前已在 Discord 測試伺服器完成實際操作驗收。
透過 /list 指令查詢 Google Calendar 行程,並在 Discord 顯示行程名稱、台灣時間及事件 ID,方便後續指定要刪除的行程。
實作重點:
/list Slash Command,將指令交給獨立模組處理。events.list() 取得行程資料。預設查詢未來 7 天,顯示最早 5 筆;也能調整查詢天數與顯示筆數:
/list days:7 limit:5

圖 1:讀取查詢參數,呼叫 Calendar 服務,將行程名稱、時間與事件 ID 整理成 Discord 回覆。

圖 2:真實 Discord 查詢結果,包含本次新增的測試行程與事件 ID。
完成查詢後,接著使用事件 ID 指定要刪除的行程,避免相同標題造成誤判。
刪除前先顯示預覽資訊,只有使用者設定 confirm:true 時,才會真正呼叫 Google Calendar API 執行刪除。
實作重點:
/delete Slash Command,讀取事件 ID。events.delete(),並將結果回覆至 Discord。操作方式:
/delete event_id:行程ID
/delete event_id:相同ID confirm:true

圖 3:依 confirm 參數選擇預覽或執行刪除,避免直接誤刪行程。

圖 4:Discord 先顯示刪除預覽,確認後回覆刪除成功。
最後加入 Google Calendar 原生提醒設定,不另建立 Discord 定時通知系統。
新增事件時,以 reminders.useDefault:false 搭配 popup 與提前分鐘數,將提醒設定儲存在 Google Calendar。
實作重點:
/add 增加 reminder 參數。本次實際操作指定提前 15 分鐘提醒:
/add title:讀書 date:20271231 time:1830 reminder:15

圖 5:驗證提醒分鐘數,並在新增事件的 API 資料中加入 popup 設定。

圖 6:Google Calendar 事件詳細資料顯示「15 分鐘前」,確認提醒設定已成功寫入。
這張截圖驗證的是提醒設定,沒有驗證通知實際彈出或成功發送。實際通知仍需 Google Calendar 與使用裝置允許通知。
本次共 111 項自動測試全部通過,0 項失敗,涵蓋查詢參數、空清單、分頁、時區、刪除確認、建立者檢查、API 錯誤及提醒分鐘數邊界。自動測試使用模擬 API 或攔截 SDK 傳輸,不代表 111 次真實操作。
另外完成真實 Discord 與 Google Calendar 操作驗收:
/list 成功查詢行程,時間與事件 ID 正確。/delete 先預覽,確認後刪除專用測試行程。/ping 仍正常。這三天將原本只有新增行程的 Bot,擴充為可以查詢、刪除與設定提醒的行程管理工具。
查詢時保留事件 ID,讓後續刪除有明確依據;刪除加入預覽與確認,降低誤操作;提醒則利用 Google Calendar 原生能力,讓 Bot 不需要額外維護通知排程。
接下來 Day 26~27 將整理錯誤處理與模組職責,進一步改善專案的穩定性及可維護性。