工具製作日誌 2026.06.25

用 Google Sheets + Apps Script 建立日期提醒工具

用 Google Sheets 作為後台,配合 Apps Script 和 Telegram 自動提醒指定日期事項。

我最初想解決的問題很簡單:手上有一張表格,入面記錄了一些需要按日期跟進的事項。一行是日期,一行是描述。這些內容會不時變動,如果每次都要自己打開表格檢查,時間久了很容易遺漏。因此,我想找一個方法,讓系統可以在指定日期,自動提醒我當日要處理的事項。

一開始我考慮過用 VPS 去做,因為 VPS 可以定時執行任務,亦可以透過 Telegram 發通知。不過後來我發現,這件事的核心其實不是伺服器,而是「表格經常要修改」。既然資料本身就是表格,用 Google Sheets 作為後台會更自然。我只需要改表格,Apps Script 則負責自動檢查和發送通知。

我想做到的效果

我希望每日大約早上 9 時 30 分,系統自動檢查 Google Sheets。如果當日有提醒,就把描述透過 Telegram 發給我。

同一天可能有多過一項提醒,所以我不希望系統分開發很多個訊息,而是合併成一個訊息。例如:

【今日提醒|2026-06-25】

  1. 提交文件
  2. 跟進客戶回覆
  3. 檢查報表

這樣我早上收到一個通知,就可以知道當日有什麼事項需要處理。

我實際做了什麼

我先建立了一個 Google Sheet,作為提醒資料表。表格內設計了幾個欄位,包括日期、描述、是否啟用、發送狀態、發送時間和識別碼。

日期用 YYYY-MM-DD 格式,方便系統判斷哪一日要發通知。描述就是我想在 Telegram 收到的內容。enabled 用來控制某項提醒是否生效,1 代表啟用,0 代表停用。status 和 sent_at 則由系統在發送後自動填寫,避免同一項提醒重複發送。

之後,我在 Google Sheets 內開啟 Apps Script。Apps Script 的作用,是每日定時讀取表格,找出當日、已啟用、尚未發送的提醒,然後透過 Telegram Bot 發送訊息。

編碼部分可以找 AI 協助生成,所以我不需要自己逐行寫程式。比較重要的是,我要清楚向 AI 說明需求,例如:每日約 9:30 執行、讀取指定工作表、同一天多條提醒要合併、發送後要標記為 SENT。

我怎樣測試

完成設定後,我先測試 Telegram Bot 是否可以正常發訊息。測試成功後,再建立一條今日日期的提醒,手動執行一次 Apps Script,確認 Telegram 是否收到通知。

當 Telegram 成功收到測試訊息,而 Google Sheet 內的 status 和 sent_at 亦自動更新後,代表基本流程已經可用。

最後,我再設定每日自動觸發,讓 Apps Script 之後可以在每日約 9:30 自動執行。

日常使用方式

完成後,我日常只需要維護 Google Sheet。

如果要新增提醒,我就在表格加一行,填入日期和描述。如果暫時不想發送某項提醒,就把 enabled 改成 0。如果某項已經發送過,但之後想重新發送,就清空 status 和 sent_at。

這種方式對我來說比較方便,因為我不用登入 VPS,也不用每次打開程式修改設定。提醒資料本身就是表格,所以直接在 Google Sheets 修改最直觀。

如果一次有很多資料要整理,例如日期格式不一致、描述需要修正,亦可以先交給 AI 幫我整理成表格格式,再貼回 Google Sheets。

安全方面我做了什麼

因為這個工具會連接 Google Sheets 和 Telegram,所以安全性不能完全忽略。

我選擇使用專用 Google 帳戶,並開啟雙重驗證。Google Sheet 不公開分享,也不設定成「知道連結的人都可以編輯」。Apps Script 的編輯權只保留給自己。

Telegram Bot Token 亦不放在 Google Sheet 內,也不長期留在程式碼中,而是放在 Apps Script 的 Script Properties。這樣即使日後打開表格,也不會直接看到 Token。

另外,我亦避免在 description 寫入高度敏感資料,例如密碼、完整銀行資料、API Key、身份證明文件號碼或未公開的重要交易內容。如果提醒涉及敏感事項,我會用較概括的寫法,例如「跟進銀行文件」或「檢查投資資料」。

這個方法的限制

這個方法雖然方便,但不是沒有限制。

Apps Script 的定時執行不是秒級準時,所以它比較適合「約 9:30」的日常提醒。如果一定要非常準時,VPS 或其他伺服器方案會較合適。

另外,資料是放在 Google 生態內,所以如果內容非常敏感,就要再考慮是否適合用 Google Sheets 儲存。

我的總結

對我來說,Google Sheets + Apps Script 是一個比較平衡的做法。它不需要我維護 VPS,也不需要每次進入 Terminal 操作。我只需要維護一張表格,系統就可以根據日期自動發 Telegram 提醒。

這個方法最適合一般日期提醒、行政跟進和定期事項管理。只要安全設定處理好,並避免放入高度敏感資料,它可以在方便性和風險之間取得一個合理平衡。

之後如果需求變得更複雜,例如要非常精準的執行時間、更多權限控制或更細緻的自動化邏輯,可能仍然需要考慮 VPS 或其他方案。但以目前的用途來說,用 Google Sheets 作為後台,再配合 Apps Script 和 Telegram,已經能夠完成我最初想達到的目的。