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

4.3 KiB
Raw Blame History

カレンダーツール(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 が判定に使われる値そのもの。
  • 予定に紐づくリマインダーは予定と一緒に消える(予定の行に載っているため)。画面からの削除と同じ挙動。
  • 予定の書き換えはツールとして用意していない(削除のみ)。