AgentStack
SKILL verified MIT Self-run

Travel Planner

skill-echovoid2026-travel-planner-skill-travel-planner · by EchoVoid2026

Create complete, source-backed, iPhone-friendly outing packs for travel, business trips, errands, and mixed business-plus-leisure trips with day-by-day itinerary, transport options, estimated prices, Apple Maps links, optional attraction and food guidance, packing/departure checklists, Apple Notes export, and optional Apple Calendar/Reminders items. Use when the user asks to plan a trip, business…

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-echovoid2026-travel-planner-skill-travel-planner

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Travel Planner? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Travel Planner

Overview

Create a practical outing pack that a person can actually use on an iPhone: schedule, routes, Apple Maps links, prices, optional images/food/attractions, native checklist, and optional Calendar/Reminders support.

Always prefer current, source-backed information over memory. Travel prices, hours, transport schedules, attraction status, restaurants, and local rules are time-sensitive.

Core Workflow

The conversation has exactly TWO gates. Everything between and after them runs without asking the user anything.

  1. Gate 1 — one-round intake (hard gate). Confirm trip details BEFORE writing any itinerary content. Collect every missing essential in ONE compact question round (a single message or one AskUserQuestion call, never one question at a time): outing type (business trip, leisure travel, mixed, errand, family visit), departure city, destination, dates and fixed times, booked vs unbooked transport, fixed appointments with time and place, hotel booked or preferred area, traveler count and constraints, budget style, whether attraction/food guidance is desired, whether images are desired, and which exports (Notes / Calendar / Reminders). Offer sensible defaults inline so the user can answer in one breath. In the SAME round, also list optional details worth volunteering — dietary restrictions, mobility limits, must-see / must-avoid places, shopping goals — labeled as 建议补充: suggestions the user may skip, never blockers. Only skip this gate when the user explicitly asks for a simulation or says to proceed with assumptions — then label every assumption in the output.
  2. Browse current sources for transport, attraction hours, ticket prices, restaurant status, neighborhoods, weather-sensitive considerations, and local travel advisories when relevant. Use official or primary sources first for prices, hours, tickets, transit, and rules.
  3. Use image search or source-backed image URLs for key attractions and foods. Prefer images that reveal the actual place or dish, not generic stock imagery.
  4. Build the itinerary from constraints outward: sleep location, transport windows, opening hours, meal timing, walking/transit load, likely queues, backup plans, and rest.
  5. Estimate costs in a clearly labeled table. Split confirmed prices, current search quotes, and rough estimates. Include currency and date checked.
  6. Write ALL output files before asking for confirmation: the main itinerary Markdown (rules: references/outing-type-routing.md, references/travel-plan-standards.md, references/iphone-mobile-template.md, references/apple-ecosystem-output.md), the addresses Markdown for business trips, and the Calendar/Reminders JSON if those exports were requested.
  7. Gate 2 — one-shot plan confirmation. Present everything in ONE message: the itinerary summary, cost range, key risks, AND the full export preview — the Notes pack structure (note titles), the exact Calendar events (run scripts/export_apple_schedule.py without --apply for a faithful preview), and the exact Reminders. Ask for a single confirmation. Do not export anything before this confirmation, and do not ask further questions after it — itinerary tweaks the user requests here fold into the same round.
  8. One-shot export. On confirmation, run every requested export back-to-back with no further questions: scripts/save_to_notes_native.py for each note (add --paste-images / --checklist-note per trip type), then scripts/export_apple_schedule.py --apply --replace. Report all verification outputs together in one message, exactly as the scripts printed them. If the user tweaks details afterward, update the files and re-run the same commands — --replace makes every export idempotent.
  9. If the user wants a polished preview or shareable card-style page, create an HTML version from assets/iphone-travel-plan-template.html at any point after Gate 2.

Research Rules

  • Browse for all current facts with more than a small chance of changing: transport prices and schedules, hotel areas, attraction opening hours, tickets, restaurant opening status, reservation rules, seasonal closures, local events, exchange rates, and weather.
  • Use official attraction, transport, government, airport, rail, and restaurant pages when available. Use reputable travel sources only when primary sources are missing.
  • Cite sources in the plan. Put concise source links near the sections they support.
  • Never present uncertain prices as guaranteed. Mark them as confirmed, live quote, or estimate.
  • When dates are relative, convert them to exact calendar dates.

Plan Quality Bar

Read references/outing-type-routing.md, references/travel-plan-standards.md, references/iphone-mobile-template.md, references/apple-ecosystem-output.md, and references/apple-calendar-reminders.md before writing the final plan. Use them as the output checklist for every substantial trip.

The final plan must include:

  • Outing type: business trip, leisure travel, mixed trip, errand, or family visit
  • Trip summary with dates, travelers, pace, budget style, and assumptions
  • Daily itinerary with morning, afternoon, evening, transport, food, backup options, and rest time
  • Transport comparison from departure city to destination and within destination
  • Apple Maps links for important stations, airports, hotels, venues, attractions, restaurants, and route segments
  • Optional Apple Calendar events for fixed-time items and Reminders for tasks, after user confirmation
  • Cost table covering transport, lodging, attractions, meals, local transit, buffer, and total range
  • Attraction image section with names, why go, time needed, ticket or reservation note, and image links or embedded Markdown images
  • Food image and food strategy section with signature dishes, where to eat them, reservation notes, and image links or embedded Markdown images
  • Checklist for documents, money, packing, electronics, health, booking, departure day, and return day
  • Risks and backup plan: weather, closures, fatigue, missed transport, sold-out tickets, and dietary/mobility constraints
  • Source list with access date

iPhone Visual Template

For Apple Notes, keep the final Markdown single-column, scrollable, and image-led. Do not use wide tables for daily schedules; use compact cards with short labels instead. Put the most useful phone-on-the-street information in the first screen: route, today's anchor, booking alerts, total budget, hotel area, and emergency backup.

For HTML preview or web sharing, copy assets/iphone-travel-plan-template.html and replace placeholder blocks with the researched trip content. Keep the design single-column at 390px-friendly widths, with 4:3 or 16:9 images, sticky quick nav, readable 16px+ text, and tap-sized links/buttons.

Apple Ecosystem Fit

Use Apple Maps links for stations, airports, hotels, venues, restaurants, attractions, and day route segments. Generate them with scripts/apple_maps_link.py when helpful:

python3 scripts/apple_maps_link.py --saddr "杭州东站" --daddr "杭州湖滨银泰" --mode transit

Use emoji route diagrams in Apple Notes instead of complex maps or wide tables. Keep the note lively but practical: emojis should make the route easier to scan, not decorate every sentence.

macOS Notes Export

Deliver a trip pack, not one giant note. Recommended shape:

Travel 文件夹
├── |主行程          ← text, emoji routes, Apple Maps links, images
├── |主行程|Checklist ← native clickable checklist (auto via --checklist-note)
└── (business trips) |地址票务 ← addresses, bookings, invoice info as a second markdown file

When saving the final plan:

  1. Write the final Markdown plan to a local file first.
  2. Run:
python3 scripts/save_to_notes_native.py --file /path/to/plan.md \
    --title "杭州 2天1晚|主行程" --folder "Travel" --replace \
    --paste-images --checklist-note
  1. How the script works, in order of reliability:
  • The full body with clickable ` links is always written via AppleScript body` and verified by reading the note back. This never depends on UI focus. Images stay as clickable links in the text.
  • --paste-images then appends up to 6 downloaded, compressed images to the end of the note through the Notes UI, verifying the attachment count after each paste.
  • --checklist-note moves - [ ] items into a separate note as a native clickable checklist through the Notes UI. Alternatively, put tasks into Apple Reminders via export_apple_schedule.py, which is even more robust.
  1. Report exactly what the script printed: exit 0 means everything verified; exit 3 means the body is intact but some enhancement failed (the script says which); exit 2 means the input file was not found; exit 1 means the body write failed. Never claim images or native checklists worked beyond what the verification output shows.
  2. If macOS asks for Automation or Accessibility permission, instruct the user to allow the calling app to control Notes and System Events, then rerun. In headless or unfocused environments, drop --paste-images/--checklist-note: the plain run needs only Automation permission and still produces a complete, linked note.

Calendar and Reminders Export

Use Calendar only for fixed-time schedule blocks: trains, flights, meetings, ticketed reservations, hotel check-in/out when important, restaurant reservations, and tight transfers. Use Reminders for tasks: booking, packing, documents, weather check, invoice/reimbursement, saving addresses, and predeparture confirmations.

The preview belongs inside Gate 2 (Core Workflow step 7) — one confirmation covers Notes, Calendar, and Reminders together. Never run --apply before that confirmation, and never ask for a second, separate confirmation just for Calendar/Reminders.

Preview first:

python3 scripts/export_apple_schedule.py --file /path/to/apple-schedule.json

Apply after user confirmation:

python3 scripts/export_apple_schedule.py --file /path/to/apple-schedule.json --apply --replace

After applying, verify the intended Calendar and Reminders list contain the generated items. Do not create Calendar/Reminder items silently.

Fast Path

Target: a few minutes from confirmed details to a complete pack. The exports themselves are fast — a full Notes run with 4 images and a native checklist takes about 30 seconds; without images it takes seconds. Time is lost in workflow, not scripts, so:

  • Ask all clarifying questions in one round (Gate 1), never serially.
  • Research only what the plan actually depends on; skip broad browsing for simulations or when the user has already booked transport and hotel.
  • Write all output files first (main itinerary md, addresses md for business trips, schedule json), then present Gate 2.
  • Bundle the plan summary and the full three-app export preview (Notes structure + Calendar events + Reminders) into Gate 2, so ONE user confirmation unlocks the entire export.
  • After confirmation, run all exports back-to-back — Notes, then Calendar/Reminders — and report every verification output in a single message.
  • Trust the scripts' self-verification output; do not screenshot to double-check unless the user asks to see the result.
  • --paste-images downloads in parallel and costs ~2-3s per image; business trips default to no images, so drop the flag entirely there.

Output Tone

Be decisive and practical. Prefer a plan the user can execute tomorrow over a broad list of possibilities. Explain tradeoffs briefly where they change the itinerary.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.