name: schedule_management description: 日程管理。當用戶需要新增、修改、刪除日程或約會時觸發,包括:日程 CRUD、時間衝突檢測、提醒設定、週視圖查詢。
Schedule Management
功能說明
管理用戶的日程與約會,支援新增、修改、刪除日程,自動偵測時間衝突,並提供週視圖總覽。所有日程資料儲存於本地資料庫(SQLite)。
執行步驟
1. 解析用戶意圖
判斷用戶要求屬於以下哪種操作:
- 新增日程:提取標題、日期時間、地點、備註、提醒設定
- 修改日程:確認目標日程,提取需變更的欄位
- 刪除日程:確認目標日程,二次確認後刪除
- 查詢日程:查詢今日/本週/特定日期的行程
2. 衝突檢測(新增/修改時必做)
- 查詢同時段已存在的日程
- 若有時間重疊,告知用戶衝突詳情並建議替代時段
- 用戶確認後才寫入
3. 寫入本地資料庫
- 使用 SQLite 建立或更新日程記錄
- 欄位:標題、開始時間、結束時間、地點、備註、提醒時間
4. 確認回覆
回覆用戶操作結果,格式如下:
[標題]
時間:[開始] - [結束]
地點:[地點]
備註:[備註]
提醒:提前 [X] 分鐘
工具指令
- SQLite:用於日程的 CRUD 操作
- cron:用於設定提醒排程
錯誤處理
| 情境 | 處理方式 |
|---|---|
| 用戶未提供時間 | 追問「請問是什麼時候?」 |
| 時間格式模糊(如「下週」) | 確認具體日期「下週幾?幾點?」 |
| 時間衝突 | 告知衝突日程並建議空閒時段 |
| 資料庫操作失敗 | 回覆「日程儲存失敗,請稍後再試」並記錄錯誤 |
| 找不到目標日程 | 列出近似日程供用戶選擇 |
使用範例
- 「幫我排明天下午 3 點開會,地點在信義區」
- 「這週五的牙醫改到下週一」
- 「我這週有什麼行程?」
安全邊界
- 不可在未經用戶確認下刪除日程
- 修改日程前必須複述變更內容並取得確認
- 不得存取與日程無關的資料庫
- 時區固定為 America/Los_Angeles(PST)
- 僅管理日程,不處理待辦事項或提醒以外的功能