Skip to content
cccskills
FreePublished on GitHub

trip-register-to-calendar

旅行会社の予約メールなどの生テキストから、旅程(交通機関・宿泊)を抽出して Google Calendar primary にイベント登録する。フォーマットは問わない。登録前にユーザー承認を必須化し、開始 30 分前のポップアップ通知をデフォルトで付ける運用。

The English summary is being prepared. Showing the original description.

Works withGoogle Calendar

Run score Not tested

See how to install

Files included (2)

  • SKILL.md6.3 KB
  • examples/saga-2026-04-18.md3.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Trip Register To Calendar

旅行会社の予約メールや自然言語の旅程テキストから必要情報を抽出し、Google Calendar primary に複数イベントとして登録する。

想定する使い方

  • /trip-register-to-calendar + 旅の目的/テーマ + 予約メール本文を貼り付け
  • 例:
    • 「SVリーグチャンピオンシップ観戦の佐賀旅行。以下の予約メールをカレンダーに登録して: ...(本文)」

入力

  • 旅の目的/テーマ(必須、フリーテキスト)
  • 予約情報の生テキスト(必須、フォーマット不問)
    • 旅行会社、ホテル予約サイト、JR、航空会社などのメール本文をそのまま受け付ける

前提

  • Google Calendar MCP が利用可能
  • 書き込み対象は primary のみ
  • タイムゾーンは Asia/Tokyo
  • リマインダーは各イベント作成時に overrideReminders: [{ method: "popup", minutes: 30 }] を渡して個別に付与する(カレンダー側のデフォルト設定には依存しない)

抽出対象

  • 日時(日付・開始/終了時刻)
  • 交通機関名(列車名、便名、路線名など)
  • 出発駅/到着駅、出発/到着空港
  • 座席番号 / 便座席情報
  • 宿泊施設名、チェックイン日
  • プラン名、部屋タイプ、食事条件
  • 施設電話番号
  • 往復区分(往路 / 復路)

見つからない項目は空欄として扱い、勝手に補完しない。

イベント粒度とタイトル命名

  • 交通機関 1 区間 = 1 イベント
    • タイトル: 🚄 <列車名 列車番号> | <出発駅>→<到着駅>(例: 🚄 つるぎ1号 | 金沢→敦賀)
    • 飛行機の場合: ✈️ <便名> | <出発空港>→<到着空港>
  • 宿泊 = 1 イベント(チェックイン日の 15:00〜翌日 10:00 を仮の既定とする。原文に記載があればそちら優先)
    • タイトル: 🏨 <施設名>(例: 🏨 コンフォートホテル佐賀)

説明欄の書式

交通

<出発駅>発 HH:MM > <到着駅>着 HH:MM
列車: <列車名 列車番号>
座席: <N号車M席>(原文 `10=17A` → `10号車17A` に整形)
目的: <旅の目的/テーマ>

宿泊

施設: <施設名>
TEL: <電話番号>
部屋: <部屋タイプ>
プラン: <プラン名>
食事: <食事条件>
目的: <旅の目的/テーマ>

手順

進捗チェックリストをコピーして使う:

- [ ] 1. 入力(目的/テーマ・予約テキスト)を識別
- [ ] 2. 旅程を抽出・正規化
- [ ] 3. 既存イベントの重複チェック
- [ ] 4. 承認テーブルを提示しユーザー承認を取得
- [ ] 5. 各イベントを作成
- [ ] 6. 結果(成功/失敗)を一覧で報告
  1. 入力から「旅の目的/テーマ」と予約情報の生テキストを識別する。目的/テーマが不明なら推測せずユーザーに確認する。

  2. 生テキストから旅程情報を抽出し、内部表現(交通イベント配列 + 宿泊イベント配列)に正規化する。

    • 日付は YYYY-MM-DD、時刻は HH:MM、TZ は Asia/Tokyo
    • 抽出できない項目は空欄(null)として扱う
  3. 重複チェック: 旅程の最小日〜最大日の範囲で mcp__claude_ai_Google_Calendar__list_events(calendarId: "primary")を呼び、同タイトルの既存イベントがあれば該当行に「既存」と印を付ける。承認テーブルで重複候補を明示し、再登録するか既定でスキップするかをユーザーに委ねる(再実行時の重複量産を防ぐ)。

  4. 抽出結果を以下の形式で ユーザーに表で提示し、登録可否を確認する。

    #種別日付開始終了タイトル場所座席状態
    1交通2026-04-1806:0006:57🚄 つるぎ1号 | 金沢→敦賀金沢駅10号車17A新規
    2宿泊2026-04-1815:0010:00(翌)🏨 コンフォートホテル佐賀佐賀県-新規

    承認前にユーザーは修正・除外を指示できる。

  5. 承認後、各イベントを mcp__claude_ai_Google_Calendar__create_event で作成する。

    • calendarId: "primary"
    • timeZone: "Asia/Tokyo"
    • startTime / endTime は ISO 8601(例: 2026-04-18T06:00:00+09:00)
    • summary、description、location(駅名や施設名を入れる)を渡す
    • overrideReminders: [{ method: "popup", minutes: 30 }] で開始 30 分前のポップアップ通知を付与する
    • notificationLevel は NONE(本人のみなので)
    • 任意: colorId で種別を色分け(交通=7 Peacock / 宿泊=10 Basil)、宿泊は availability: "AVAILABILITY_FREE"(一泊で予定が埋まらないように)
  6. 登録完了後、作成された各イベント ID とタイトルを一覧で返す。失敗したイベントがあればエラー内容と未登録一覧も併せて返す。

動作確認サンプル

examples/saga-2026-04-18.md に佐賀旅行の入力例と期待される登録内容(宿泊 1 + 交通 8 = 9 件)をまとめる。

注意

  • 本人のプライベート予定を扱うので、承認ステップは必ず挟む
  • 原文にない情報を補完しない(抽出できない項目は空欄)
  • 電話番号・座席番号は説明欄には残すが、タイトルには含めない
  • 日付またぎ(例: 宿泊のチェックアウトが翌日)は終了日時を正しく翌日扱いにする

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Convert Claude markdown subagent files to Codex CLI TOML format. Parses YAML frontmatter and body, applies model/permission/tool mappings, and outputs to agents/codex/<name>.toml.

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

Create or update a Markdown blog draft from recent work and export it with `YYYY-MM-DD_slug.md` naming. Output directory can be set via environment variable or CLI option; if missing, ask the user and pass it explicitly.

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

変更をコミットしてドラフトPRを作成する一連のGit/ghワークフロー。ユーザーが「コミットして」「PR作って」「draft PR」等を求めたときに使用し、status/diff確認・命令形コミット・push・gh pr create --draft(--assignee hodanov)まで実行する。ユーザーの明示リクエストが無くても、実装完了後にcommitやPRが必要になった場面(dev-workflowのcommitフェーズ等)では必ずこれを使う。`git commit` や `gh pr create` を単体でBash直接実行しない。

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

1 つの作業ツリーに混ざった差分を、変更理由ごとの意味単位のコミットへ分割する。ユーザーが「コミットを分割して」「意味単位で分けて」「commit-split」等を求めたとき、または機能追加・付随リファクタ・設定/ドキュメント修正が 1 コミットに混在していると気づいたときに使用する。分割案を提示して承認を得てからステージし、コミットごとに単独で成立することを確認する。メッセージ規約・push・PR の作成は commit-and-draft-pr へ委譲する。

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

gitleaks + pre-commit を使ってローカルコミット時のクレデンシャル混入を機械的にブロックする。「クレデンシャル漏洩防止」「シークレット混入対策」「gitleaks」「pre-commit シークレット」「credential leak prevention」に言及した場合に使用する。

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

依存パッケージ(Go modules / npm / Terraform provider / GitHub Actions / pre-commit 等)の アップグレードを、outdated 検出 → CHANGELOG・破壊的変更の確認 → 更新 → lint/test 検証 → コミットまで一連の手順で安全に適用する。「依存更新」「パッケージを上げて」「dependency update」 「go get -u」「npm update」「provider を上げる」等に言及されたときに使用する。

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

See all skills by hodanov

Report a problem with this skill