mcpField
A
award-calendar

award-calendar

github.com/borski生产力78080 次安装2 天前更新
代码仓库

关于 award-calendar

此编排技能将 seats.aero 的缓存奖励航班搜索整理为按日期和舱位划分的日历,供日期灵活的积分旅行规划使用。它还指导比较转点货币成本并呈现结果;不提供独立脚本。

主要功能

  1. 01按日期范围查询奖励航班
  2. 02按舱位整理每日最低里程
  3. 03比较转点货币的有效成本
  4. 04以日历表格呈现结果
  5. 05覆盖超出 60 天的日期范围

适用场景

  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,并以网格形式展示每天、每个舱等的最低奖励票价。突出最适合出行的日期。

**这是一个编排技能。**它会告诉 Agent 如何查询 seats.aero 并整理结果。没有独立脚本。

适用场景

  • “用积分飞 SFO 到 NRT,什么时候最便宜?”
  • “帮我看看 9 月 SFO-CDG 的奖励机票情况”
  • “我的日期很灵活,什么时候出发比较好?”
  • 任何日期灵活的奖励机票搜索

不适用场景

  • 查询特定日期(直接使用 seats-aero)
  • 现金票价日历(使用 Google Flights 的“Date grid”或 Skiplagged)
  • 酒店日期灵活性(此处不支持)

工作流

第 1 步:搜索日期范围

使用 seats.aero 缓存搜索 API,并指定日期范围。每次查询最多支持约 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:设为 1000,一次获取所有结果。

日期范围超过 60 天时,分两次查询并合并结果。

第 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 表格。**每个请求的舱等各用一个表格。

商务舱:SFO → NRT,2026 年 9 月
日期计划里程最佳积分货币积分CPP*座位数直飞
9 月 3 日 ⭐Virgin Atlantic52,500Chase UR52,5008.02✅ ANA
9 月 5 日Flying Blue55,000任意 1:155,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 次中转
........................

*如有 Duffel/Ignav 的现金票价,则据此计算 CPP;否则为估算值。

⭐ = 本月最佳优惠

总结:

  • 最佳日期:9 月 3 日,通过 Virgin Atlantic 乘坐 ANA,需 52,500 里程(8.0 cpp)
  • 次佳日期:9 月 5 日,通过 Flying Blue 需 55,000 里程
  • 最差的一周:9 月 10 日至 14 日(大多数日期没有商务舱座位)
  • 最便宜的经济舱:9 月 12 日,需 25,000 United 里程
第 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.

如果整个日期范围都没有结果,请明确说明,并建议:

  1. 扩大机场搜索范围(添加附近机场)
  2. 查看其他月份
  3. 查看其他舱等
  4. 使用 seats.aero 实时搜索查询特定日期(仅限本地 Patchright)

限制

  • 仅包含缓存数据。 结果可能已有 1–48 小时。实时搜索(通过 seats-aero-web)更新更及时,但仅限 Bobby-local 使用。
  • 查询范围限制为 60 天。 更长的日期范围需拆分为多个查询。
  • 不支持往返优化。 仅显示单程可用情况。查询往返行程时,请分别搜索去程和返程。
  • 没有现金票价日历。 这里只显示奖励票。若要灵活选择现金票价日期,请使用 Google Flights 的“日期网格”视图。
  • 虚假可用情况。 某些结果可能无法实际预订。请务必核实。

评论

支持 Markdown