Travel itinerary planner
Build a structured multi-day travel itinerary JSON from real CSV datasets. Use this skill whenever the user asks to create a travel plan, trip itinerary, or vacation schedule from a local database of cities, restaurants, accommodations, and attractions.From its SKILL.md
npx -y skills add cxcscmu/SkillLearnBench --skill travel-itinerary-plannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.6 KB, 832 tokens by cl100k_base, as published. Nobody here has run it
Travel Itinerary Planner
Purpose
Generate a valid itinerary.json from real-world CSV data files for a multi-city road trip, respecting budget, dietary, pet, and transportation constraints.
Input Requirements
Collect from user prompt:
- Origin city and destination cities
- Travel dates and duration (number of days)
- Total budget (USD)
- Party size and special needs (pets, dietary preferences)
- Transportation mode (road trip = no flights)
- Meal cuisine preferences
Dataset Locations
| Dataset | Path |
|---|---|
| City list | data/background/citySet_with_states.txt |
| Restaurants | data/restaurants/clean_restaurant_2022.csv |
| Accommodations | data/accommodations/clean_accommodations_2022.csv |
| Attractions | data/attractions/attractions.csv |
| Distances | data/googleDistanceMatrix/distance.csv |
Planning Workflow
Step 1 — Select Destination Cities
Query citySet_with_states.txt to confirm cities exist in the dataset for the target state.
Step 2 — Plan Route and Travel Days
- Look up driving distances/durations in
distance.csv(columns:origin,destination,cost,duration,distance) - Assign travel days for long drives; designate full days for city exploration
- No flights allowed if user specifies road trip
Step 3 — Select Pet-Friendly Accommodations
Filter clean_accommodations_2022.csv:
citymatches destinationhouse_rulesdoes NOT contain"No pets"minimum nights≤ number of nights planned in that city- Choose highest
review rate numberwithin budget
Accommodation cost = price × number of nights in that city.
Step 4 — Select Restaurants by Cuisine
Filter clean_restaurant_2022.csv:
Citymatches current cityCuisinescontains one of the preferred cuisines- Spread meals across preferred cuisine types across the trip
- Skip meals (
"-") on long travel days when meals aren't practical
Step 5 — Select Attractions
From attractions.csv:
Citymatches current city- Choose 2–4 per full day in city
- Format:
"Name1;Name2;Name3;"(semicolon-separated, trailing semicolon)
Step 6 — Budget Check
Total = sum(accommodation nightly rate × nights per city) + sum(meal average costs)
Target: Total ≤ budget
Transport has no explicit cost in datasets (self-driving); gas/misc covered by remaining budget.
Output JSON Structure
{
"plan": [
{
"day": 1,
"current_city": "from A to B",
"transportation": "Self-driving: from A to B",
"breakfast": "Restaurant Name, City",
"lunch": "-",
"dinner": "Restaurant Name, City",
"attraction": "-",
"accommodation": "Accommodation Name, City"
}
],
"data_sources": [
"background/citySet_with_states.txt",
"accommodations/clean_accommodations_2022.csv",
"restaurants/clean_restaurant_2022.csv",
"attractions/attractions.csv",
"googleDistanceMatrix/distance.csv"
]
}
Key Rules
- Travel days:
current_city="from A to B", skip attractions, include meals only when practical - Staying days:
current_city= city name, list attractions, full meals - Last day (return):
accommodation="-"(back home) - Always end
attractionstrings with a trailing semicolon - All data must come from the CSV files — never invent restaurants, accommodations, or attractions
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.