里程碑
# 📅 智慧 LINE 課業與日程提醒助理:口語化新增行程
章魚 @liza.1116發布於
本專案結合 n8n 自動化工作流、AI Agent、Google Calendar API以及 LINE Messaging API,讓我只需在 LINE 隨手傳送口語訊息即可自動建立 Google 日曆,並利用 LINE 高頻使用的特性,在前一天定時主動推播提醒,徹底解決課業遺忘問題。
一、 專案背景與想解決的問題
- 專案背景*:
上課時老師常口頭交代作業截止日或考試時間,但事後極易遺忘。雖然有行事曆或記事本 App,但每次新增都要手動輸入日期、時間、事件名稱等多個欄位,過程太過繁瑣。
想解決的問題:
手動記錄門檻高:填寫日曆欄位繁瑣,導致當下懶得記、事後想不起。
傳統通知易被忽視:手機內建日曆或 Email 的提醒通知頻率低,常常被順手滑掉而沒注意到。
缺乏高頻提醒機制:缺乏一個能嵌入日常高頻使用情境(如每天必看的 LINE)的主動提醒管道。
二、 系統架構與做法
本系統採用雙工作流程(Workflows)架構,將「輸入記錄」極簡化,並將「提醒通知」高頻化:
【第一部分:LINE 口語輸入 ──> 自動建立 Google 日曆】
LINE 使用者 ──> [Webhook] ──> [AI Agent] ──> [Edit Fields (格式清洗)] ──> [Google Calendar (建立行程)] ──> [HTTP Request (LINE 回覆)]
【第二部分:每天定時巡檢 ──> LINE 主動推播提醒】
[Schedule Trigger (Cron)] ──> [Edit Fields (計算明日時間區間)] ──> [Google Calendar (讀取行程)] ──> [HTTP Request (LINE Push)]
核心模組說明:
- 極簡記錄流程:
Webhook:即時接收使用者在 LINE 輸入的口語訊息。
AI Agent:自動提取訊息中的「日期」與「考試/作業事件」,無需手動輸入多個欄位。
Edit Fields:透過 JavaScript 與正則表達式自動清洗日期格式(如將「11月16日」轉換為標準格式)。
Google Calendar:自動將整理好的事件寫入 Google 日曆。
HTTP Request (Reply API):即時在 LINE 回覆新增成功訊息,提供即時反饋。
- 提醒流程(獨立定時推送):
Schedule Trigger:設定 Cron 語法(例如每天早上 09:00)自動觸發。
Edit Fields:自動計算明日 00:00:00 至 23:59:59 的時間範圍。
Google Calendar (Get Many):精確讀取明天所有的考試與作業行程。
HTTP Request (Push API):利用 LINE 高開啟率的特點,主動發送強提醒訊息至 LINE 聊天室,避免通知被忽視或滑掉。
三、 實作過程中遇到的問題與解決方案
- AI 輸出結構不固定:
問題:預設 AI 回應會將文字擠在一起,無法直接放入 Google 日曆。
解法:設定 JSON Schema 強制 AI 輸出結構化資料,並以 JSON.parse 獨立提取日期與事件名稱。
- 日期輸入格式多樣:
問題:口語訊息包含「11月16日」、「11/16」或「11-16」等多種寫法。
解法:使用正則表達式 .replace(/[^\d]/g, '/') 強制排除非數字字元並轉化為標準日期格式。
- LINE 訊息格式破裂 (Invalid JSON):
問題:訊息中的換行符號(\n)與符號破壞了 HTTP Request 的 JSON 結構。
解法:使用雙反斜線 \\n 與 JavaScript 樣板字串(Template Literals)對內容進行轉義保護。
- 提醒時間精確度設定:
問題:預設觸發器無法設定精確的分鐘數。
解法:切換至 Custom (Cron Expression) 模式,填入如 0 9 * * *,確保每天早上準時推播隔天行程。
---
四、 專案產出與成果
- 零負擔記錄:聽完老師宣佈後,只需在 LINE 隨手傳送「
11/16 邏輯電路小考」,系統即自動解析並寫入 Google 日曆,免去手動開 App 填寫多欄位的繁瑣步驟。 - 高顯眼度主動防漏:借助 LINE 高頻使用的習慣,每天定時推播隔天的考試與作業提醒,大大降低通知被忽略滑掉的機率,有效防範漏交作業與忘記考試的情況。
0 個愛心0 則留言
登入並驗證手機後就能留言。登入