Files
maestro/docs/tools/calendar.md
T
oss-sync 57702b4f34
CI / build-and-test (push) Canceled after 0s
sync: update from private repo (2336949a)
2026-09-17 11:29:31 +00:00

81 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# カレンダーツール(AddCalendarEvent / ListCalendarEvents / DeleteCalendarEvent)
スペース別カレンダーに「予定」を読み書きするツール。予定は受動的なエントリで、
cron の定期タスク(`scheduled_tasks`)とは別概念(予定は実行しない)。
予定は実行中タスクが属するスペース(`ctx.spaceId`)のカレンダーに記録される。
スペースに属していないタスク(旧 local タスク)では使えず、明確なエラーを返す。
## AddCalendarEvent
実行中タスクのスペースのカレンダーに予定を1件追加する。
`created_by` は常に `agent`、`source_task_id` には実行中タスク ID が記録される。
引数:
- `title`(必須): 予定のタイトル
- `date`(必須): 開始日 `YYYY-MM-DD`(ローカル日付)
- `end_date`(任意): 終了日 `YYYY-MM-DD`。複数日にまたがる予定のとき指定。省略すると単日。`date` より前は不可
- `time`(任意): 開始 `HH:MM`。省略すると終日扱い
- `end_time`(任意): 終了 `HH:MM`。`time`(開始)があるときだけ有効。単日では開始時刻以降のみ(複数日は終了日側の時刻なので順序不問)
- `description`(任意): 補足説明
例:
```
AddCalendarEvent({ title: "定例MTG", date: "2026-07-01", time: "10:00", end_time: "11:00" })
AddCalendarEvent({ title: "提出締切", date: "2026-07-10" }) // 終日
AddCalendarEvent({ title: "現地出張", date: "2026-07-10", end_date: "2026-07-12" }) // 複数日
```
使いどころ: ユーザーが「○日に△△を予定に入れて」と依頼したとき、調査の結果として
期限や予定日が判明したとき。日付は必ずユーザーのローカル暦日で指定する。
## ListCalendarEvents
スペースの予定を日付範囲で一覧する(読み取り専用)。
引数:
- `from`(任意): 範囲開始 `YYYY-MM-DD`
- `to`(任意): 範囲終了 `YYYY-MM-DD`
範囲を省略すると全期間。結果は日付→時刻順(終日は各日の先頭)で返る。
## DeleteCalendarEvent
スペースの予定を id で 1 件削除する。
引数:
- `id`(必須): `ListCalendarEvents` が返す予定の id(正の整数)
**削除できるのは `created_by` が `agent` の予定だけ。**利用者が画面から入れた予定
(`created_by` = `user`。この列が無かった頃の古い行も `user` として扱われる)は、
id を渡されても削除せず `isError: true` を返す。
```
ListCalendarEvents({ from: "2026-07-01", to: "2026-07-31" })
// - 2026-07-01 10:00 「定例MTG」(id=12, agent)
// - 2026-07-03 (終日)「健康診断」(id=13, user)
DeleteCalendarEvent({ id: 12 }) // → 削除される
DeleteCalendarEvent({ id: 13 }) // → isError。利用者が作成した予定
```
返り値(`isError: true` のもの):
| 渡した id | 返る内容 |
|---|---|
| 利用者が作成した予定 | この予定は利用者が作成したため削除できません。削除できるのはエージェントが作成した予定(created_by=agent)だけです |
| 別スペースの予定 | 指定された id の予定はこのスペースに見つかりません |
| 存在しない・すでに削除済み | 指定された id の予定はこのスペースに見つかりません |
別スペースの id と存在しない id で**文面を同一にしている**のは意図的。文面が違うと、
その id の予定が他のスペースにあることを差分で漏らす。
## gotcha
- `date` / `from` / `to` は `YYYY-MM-DD`、`time` / `end_time` は `HH:MM` 厳守。形式違反はエラー。
- `end_time` は `time` なしには指定できない(終日の予定に終了時刻は持てない)。
- スペース未所属のタスクからは呼べない(`ctx.spaceId` 必須)。
- 予定はスペースの可視性に従う。イベント単独の可視性は持たない。
- `DeleteCalendarEvent` は利用者が作成した予定を消せない。一覧の行末に出る `agent` / `user` が判定に使われる値そのもの。
- 予定に紐づくリマインダーは予定と一緒に消える(予定の行に載っているため)。画面からの削除と同じ挙動。
- 予定の書き換えはツールとして用意していない(削除のみ)。