mcpField
A
award-calendar

award-calendar

github.com/borski生産性78080 回インストール2 日前に更新
リポジトリ

award-calendar について

日程に余裕のある旅行者向けに、seats.aeroのキャッシュ検索を日付とキャビン別のカレンダーにまとめるオーケストレーションスキルです。移行可能なポイントの比較と結果の整形も指示しますが、単独のスクリプトはありません。

主な機能

  1. 01日付範囲で特典航空券を検索
  2. 02キャビン別に日ごとの最安マイルを整理
  3. 03移行先通貨ごとの実質コストを比較
  4. 04カレンダー表で結果を表示
  5. 0560日を超える期間を分割して処理

活用シーン

  1. 01日程を調整して安価なビジネスクラス特典を探す
  2. 02特定路線の月間特典空席を確認
  3. 03日付ごとの必要マイル数を比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill award-calendar

インストール後、Claude Code で/award-calendarを入力して読み込まれたか確認します。

詳細

特典カレンダー

「ポイントを使ってSFOからNRTへ飛ぶなら、いつがよいですか?」にカレンダー表示で回答します。

seats.aeroで日付範囲を検索し、客室クラスごとに日ごとの最安特典を表示するグリッドを作成します。お得な搭乗日を強調表示します。

これはオーケストレーションスキルです。 seats.aeroへの問い合わせ方法と結果のフォーマットをエージェントに指示します。単独で実行できるスクリプトはありません。

使用する場面

  • 「ポイントを使ってSFOからNRTへビジネスクラスで飛ぶなら、いつが最安ですか?」
  • 「9月のSFO-CDGの特典航空券の空席状況を見せてください」
  • 「日付は柔軟に選べます。いつ飛ぶのがよいですか?」
  • 日付を柔軟に選べる特典航空券の検索全般

使用しない場面

  • 特定の日付の検索(seats-aeroを直接使用)
  • 現金価格のカレンダー(Google Flightsの「日付グリッド」またはSkiplaggedを使用)
  • ホテルの日付の柔軟な検索(ここではサポートされていません)

ワークフロー

ステップ1:日付範囲を検索する

seats.aeroのキャッシュ検索APIを使って日付範囲を検索します。APIでは1回のクエリで最大約60日間を検索できます。

curl -s -H "Partner-Authorization: $SEATS_AERO_API_KEY" \
  "https://seats.aero/partnerapi/search?origin_airport={ORIGIN}&destination_airport={DEST}&start_date={START}&end_date={END}&cabin={CABIN}"

パラメーター:

  • origin_airport:近隣の空港をカンマ区切りで指定できます(例:SFO,SJC,OAK)
  • destination_airport:同様です。都市圏を検索する場合は複数指定します(東京の場合はNRT,HNDなど)
  • start_date、end_date:YYYY-MM-DD形式です。最良の結果を得るには、範囲を60日未満にしてください。
  • cabin:任意のフィルターです。economy、premium、business、firstを指定します。すべての客室クラスを対象にする場合は省略してください。
  • order_by:最安値を先頭に表示するにはlowest_mileageを使用します。
  • take:1ページですべての結果を取得するには1000に設定します。

60日を超える範囲は、2回のクエリに分割して結果をまとめます。

ステップ2:日付ごとにまとめる

APIのレスポンスを処理します。

For each availability object:
  date = result.Date
  cabin = which cabin(s) are available (Y/W/J/F)
  For each available cabin:
    cost = result.{cabin}MileageCost
    program = result.Source
    Track: cheapest cost per date per cabin across all programs
ステップ3:移行パートナーを考慮して最適化する

日付ごとの最安結果について、data/transfer-partners.jsonを使って移行可能な通貨での実質コストを計算します。

For date 2026-09-05, cheapest business = 55,000 via Flying Blue:
  Chase UR: 55,000 / 1.0 = 55,000 UR
  Amex MR: 55,000 / 1.0 = 55,000 MR
  Bilt: 55,000 / 1.0 = 55,000 Bilt
ステップ4:カレンダーグリッドを表示する

必ずMarkdownの表を使用してください。 リクエストされた客室クラスごとに表を1つ作成します。

ビジネスクラス:SFO → NRT、2026年9月
日付プログラムマイル最適な通貨ポイントCPP*座席数直行便
9月3日 ⭐Virgin Atlantic52,500Chase UR52,5008.02✅ ANA
9月5日Flying Blue55,0001:1で移行可能な通貨55,0007.64✅ AF
9月7日Aeroplan70,000Chase UR70,0006.01✅ ANA
9月8日United88,000Chase UR88,0004.83✅ UA
9月10日——————❌ 空席なし
9月12日Aeroplan75,000Amex MR75,0005.62❌ 乗り継ぎ1回
........................

*CPPは、Duffel/Ignavで取得できた場合は最安の現金運賃を基準に計算し、取得できない場合は推定します。

⭐ = 月間最もお得な日

概要:

  • 最適な日付:Virgin Atlantic経由でANAに搭乗する9月3日、52,500マイル(8.0 cpp)
  • 次点:Flying Blueで55,000マイルの9月5日
  • 最も厳しい週:9月10~14日(ほとんどの日でビジネスクラスの空席なし)
  • 最安のエコノミー:9月12日、Unitedマイル25,000マイル
ステップ5:追加情報

グリッドの後に、以下を含めます。

  1. データの鮮度に関する注意:「seats.aeroのキャッシュ検索データです。最終確認時刻は異なる場合があります。ポイント移行の前に確認してください。」
  2. 移行に関するアドバイス:「航空会社のウェブサイトで該当便の運航を確認するまでは、ポイントを移行しないでください。」
  3. **現金運賃との比較:**現金運賃(Duffel/Ignavから)を取得した場合は、参考情報としてCPPを表示します。
  4. **予約リンク:**上位3つの日付について、予約方法を記載します(例:「Virgin Atlanticのウェブサイトから予約するか、電話で取り置きを依頼してください」)。
  5. **特典枠の開放日に関する注記:**かなり先の日程を検索する場合は、まだ特典枠を開放していない可能性のある航空会社に触れます(seats.aeroの開放日ツールを使用)。

エラー処理

エラーを黙って無視してはいけません。

- ❌ Seats.aero: API error (rate limit). Try again in a few minutes.
- ⚠️ Seats.aero: Only 12 results for 30-day range. Some dates may have uncached availability. Try live search for specific dates of interest.
- ℹ️ No business availability found for any date. Showing economy and premium economy instead.

範囲全体で結果が0件の場合は、その旨を明示し、次の方法を提案します。

  1. 空港の検索範囲を広げる(近隣の空港を追加する)
  2. 別の月を確認する
  3. 別の客室クラスを確認する
  4. 特定の日付についてseats.aeroのライブ検索を使用する(ローカルのPatchrightのみ)

制限事項

  • キャッシュデータのみです。 結果は1~48時間前の情報である可能性があります。ライブ検索(seats-aero-web経由)のほうが最新ですが、Bobbyのローカル環境でのみ利用できます。
  • 検索できる期間は60日間までです。 それより長い期間を検索する場合は、複数回に分けて検索してください。
  • 往復便の最適化には対応していません。 片道の空席状況を表示します。往復便を検索する場合は、往路と復路のカレンダー検索をそれぞれ実行してください。
  • 現金運賃のカレンダーには対応していません。 特典航空券のみが対象です。現金運賃の日付を比較する場合は、Google Flightsの「日付グリッド」ビューをご利用ください。
  • 実際には予約できない空席情報が含まれる場合があります。 必ず確認してください。

コメント