Jakeschincariol/scheduler

スケジューラー。予約された通話をカレンダーに追加し、「木曜日の2時で大丈夫」といった返信から日時を特定し、空き状況を確認して招待メールを送信します。

scheduler とは?

このスキルは、クライアントとの通話予約が決まった瞬間に、Google Meetリンク付きのカレンダー招待を自動生成し、確認メールを送信して案件ステータスを「通話予約済み」に変更します。主にClaude CodeやCursorなどのAIエージェント上で動作し、ユーザーが「予約して」「カレンダーに入れて」「招待状を送って」などと指示したタイミング、または/follow-upで時間が指定された返信を見つけたときに起動します。 動作の流れは以下の通りです。(1)相手のメッセージから日時を解析し、(2)ユーザーのカレンダーと重複がないか確認し、(3)空きスロットを提示してユーザーに確認を取り、(4)承諾後にGoogle Meetリンク付きイベントを作成、(5)確認メールを送信してフォローアップを停止します。 安全設計が徹底されており、ユーザーの明示的な「はい」がない限り、イベントの作成・移動・キャンセルは一切行われません。また、予定の重複防止、カレンダーの空き時間以外の詳細は読み取らない、明確でない日時は推測しない、最初の「ノー」や中止の申し出があれば即座に停止する、などのルールを厳守します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jakeschincariol/closer-skill/tree/main/scheduler

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

scheduler は何をしますか?

誰かが通話に「はい」と言った瞬間、その勢いが冷めないうちにスケジューラーが両方のカレンダーに予定を入れます。1件の予約済み通話は、10回の追加フォローアップよりも価値があります。

${CLAUDE_SKILL_DIR} はこのスキルのフォルダ(この SKILL.md がある場所)を示します。

python3 "${CLAUDE_SKILL_DIR}/slots.py" parse --text "すみません、今週は忙しくて!木曜の2時で大丈夫です。" --today 2026-10-27
python3 "${CLAUDE_SKILL_DIR}/slots.py" free --busy closer/busy.json --from 2026-10-28 --days 3 --length 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" invite --contact dana-harbor-lane --start 2026-10-29T14:00 --minutes 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" book --contact dana-harbor-lane --start 2026-10-29T14:00 \
    --minutes 30 --approval "yes" --busy closer/busy.json

手順

  1. 日時の特定。 slots.py parse で相手の返信を解析します。「2時」のように午前・午後の指定がない場合は、午後2時として解釈します(1~7時は午後、8~12時は午前)。「明確な時間がありません」と出力された場合は、時間を尋ねてください。日付を推測してはいけません。ユーザーには完全な日付を伝えてください:「木曜日、10月29日 午後2時(あなたの時間帯)。よろしいですか?」
  2. 重複の確認。 カレンダーコネクタを使用して、その日のユーザーのイベントを読み取り、closer/busy.json に [{"start": "...", "end": "..."}] の形式で書き込みます。代わりに相手が選択肢を求めている場合は、slots.py free が営業時間内の空きスロットを一覧表示するので、2~3つ提示します。
  3. 確認。 「Harbor Lane Dental × Your Agency、10月29日(木)午後2:00~2:30、Google Meet、Dana Ortiz招待の予約を入れますか? はい、または、いいえでお答えください。」
  4. 予約。 「はい」の場合、カレンダーコネクタを使用してユーザーのカレンダーにイベントを作成します(タイトル、時間、Google Meet、Danaをゲストとして追加)。カレンダーコネクタがない場合は、slots.py invite で .ics ファイルを作成し、ユーザーが開くか添付できるようにします。
  5. 記録。 slots.py book --approval "<相手の承諾>" を実行します。案件は「通話予約済み」に移行し、/follow-up は停止します。
  6. 確認メール。 /follow-up の確認時間テンプレートを使用して返信を下書きします(「木曜の2時で大丈夫です、Danaさん。今招待状を送ります。」)。そして、ユーザーの「はい」が得られた場合のみ送信します。
  7. 準備。 通話の前に /researcher を実行するようユーザーにリマインドします。

実際の使用例

10月27日(火)午前11:48:「すみません、今週は忙しくて!木曜の2時で大丈夫です。」 parse により、10月29日(木)午後2:00と判定されます。ユーザーは空いており、承諾したため、カレンダーには「Harbor Lane Dental × Your Agency、10月29日(木)午後2:00~2:30、Google Meet、ゲスト: Dana Ortiz、あなた」と表示されます。(これは例示です。Dana と Harbor Lane Dental は架空のものです。)

絶対に行わないこと

  • ユーザーがそのイベントに対して明示的に「はい」と言っていない限り、イベントの予約、移動、キャンセルは決して行いません。
  • ユーザーのカレンダーに既にある予定と重複して予約することは決してありません。
  • 空き時間の確認以外でカレンダーの詳細を読み取ることは決してありません。

同意と真実

  • ユーザーからのそのメッセージ、招待状、または文書に対する明示的な「はい」がない限り、何も送信、予約、署名は行われません。Claude が下書きを作成し、ユーザーが「はい」と言った後に、ユーザー自身のアカウントから送信されます。カレンダー招待状はユーザー自身のカレンダーから送信されます。メッセージごとに1回の「はい」です。「すべてに同意」は決して行いません。
  • 最初の「いいえ」または拒否の兆候があれば、そこで停止します。中止の要求は、すべてのスキルにわたって永続的に尊重されます。
  • 誰かが同意した時間を捏造することは決してありません。不明な場合は、質問してください。

関連スキル