Travel Itinerary Builder
by @rachelchoo1212
Comprehensive travel itinerary generator that creates detailed, multi-day trip plans with automatic weather forecasts, points of interest, restaurant recomme...
clawhub install travel-itinerary-builderπ About This Skill
name: travel-itinerary-builder description: "Comprehensive travel itinerary generator that creates detailed, multi-day trip plans with automatic weather forecasts, points of interest, restaurant recommendations, transportation logistics, and budget estimates. Generates print-ready HTML documents with dark theme styling. Use when: (1) Planning a trip and need a complete itinerary, (2) User provides destination(s) and dates, (3) Organizing travel bookings (flights, hotels, car rentals) from Gmail, (4) Need multi-language support for destination names, (5) Creating printable travel documents, (6) Estimating travel budgets and costs." metadata: openclaw: emoji: "π" requires: bins: - curl optionalBins: - gog - goplaces optionalEnv: - GOG_KEYRING_PASSWORD - GOOGLE_PLACES_API_KEY install: - id: gog kind: brew formula: gogcli bins: - gog label: "Install GOG (Google OAuth CLI) for Gmail parsing (optional)" - id: goplaces kind: brew formula: steipete/tap/goplaces bins: - goplaces label: "Install goplaces for Google Places API (optional)"
Travel Itinerary Builder
Generate comprehensive, print-ready travel itineraries with automatic integration of weather, places, dining, transportation, and budget planning.
β οΈ Security & Privacy Notice
This skill accesses sensitive data and requires external credentials:
Gmail Access (Optional)
gmail_parser.py script reads your Gmail messages to extract booking confirmationsGOG_KEYRING_PASSWORD environment variable (for GOG CLI authentication)Google Places API (Optional)
places_fetcher.py script queries Google Places for attractionsGOOGLE_PLACES_API_KEY environment variable (free tier: 1000 requests/month)External CLI Dependencies
Before installing:
1. Review all scripts in scripts/ directory
2. Only provide credentials if you trust the external CLIs
3. Consider running in an isolated environment (container/VM)
4. Gmail integration is optional β you can use the skill without it
Quick Start
Basic Usage
# Generate itinerary from user input
python3 scripts/generate_itinerary.py \
--destination "Tokyo, Osaka, Kyoto" \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--language zh \
--output ./japan_trip.html
With Gmail Integration
# Extract bookings from Gmail and generate itinerary
python3 scripts/gmail_parser.py \
--account rachelchoo1212@gmail.com \
--after "2026-03-01" \
--output ./bookings.jsonpython3 scripts/generate_itinerary.py \
--bookings ./bookings.json \
--destination "Tokyo, Osaka" \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--output ./trip.html
Core Features
1. Automatic Data Collection
weather skill for daily forecastsgoplaces skill for attractions, restaurants, landmarks2. Intelligent Planning
3. Output Formats
Workflow
Step 1: Gather Information
Ask user for:
Step 2: Extract Existing Bookings (Optional)
If user has Gmail access configured:
python3 scripts/gmail_parser.py \
--account \
--after \
--keywords "flight,hotel,booking,reservation,confirmation" \
--output bookings.json
This extracts:
Supported platforms: Agoda, Booking.com, Singapore Airlines, ANA, Trip.com, Klook, KKday
Step 3: Query Weather and Places
# Weather forecasts for each destination
python3 scripts/weather_fetcher.py \
--destinations "Tokyo,Osaka,Kyoto" \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--output weather.jsonPoints of interest
python3 scripts/places_fetcher.py \
--destinations "Tokyo,Osaka,Kyoto" \
--interests "temples,food,shopping" \
--language zh \
--output places.json
Step 4: Generate Itinerary
python3 scripts/generate_itinerary.py \
--bookings bookings.json \
--weather weather.json \
--places places.json \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--budget 2000 \
--currency SGD \
--language zh \
--output japan_trip.html
Step 5: Export (Optional)
# Export to PDF
python3 scripts/export_pdf.py japan_trip.html japan_trip.pdfSync to Notion (if configured)
python3 scripts/sync_notion.py japan_trip.json
Scripts Reference
generate_itinerary.py
Core generator. Combines all data sources into a complete itinerary.Arguments:
--destination: Comma-separated list of cities/regions--start-date: Trip start date (YYYY-MM-DD)--end-date: Trip end date (YYYY-MM-DD)--bookings: Path to bookings JSON (from gmail_parser.py)--weather: Path to weather JSON (from weather_fetcher.py)--places: Path to places JSON (from places_fetcher.py)--budget: Total budget amount (optional)--currency: Currency code (SGD, USD, JPY, etc.)--language: Output language (zh, en, ja, ko)--interests: Comma-separated tags (history, nature, food, shopping, concerts)--output: Output file path (.html, .md, or .json)gmail_parser.py
Extracts travel bookings from Gmail using GOG skill.Requirements: GOG_KEYRING_PASSWORD environment variable
Arguments:
--account: Gmail account email--after: Start date for email search (YYYY-MM-DD)--keywords: Search keywords (default: "flight,hotel,booking,confirmation")--output: Output JSON fileweather_fetcher.py
Fetches weather forecasts for destinations using weather skill.Arguments:
--destinations: Comma-separated cities--start-date: Forecast start date--end-date: Forecast end date--output: Output JSON fileplaces_fetcher.py
Queries points of interest using goplaces skill.Arguments:
--destinations: Comma-separated cities--interests: Activity tags (temples, museums, food, shopping)--language: Display language--output: Output JSON filetranslator.py
Translates place names to multiple languages.Arguments:
--text: Text to translate--source-lang: Source language code--target-langs: Comma-separated target language codes--output: Output JSON filebudget_calculator.py
Estimates trip costs based on destination, duration, and bookings.Arguments:
--destination: Primary destination--days: Number of days--bookings: Path to bookings JSON--category: Budget category (budget, mid-range, luxury)--output: Output JSON fileexport_html.py
Converts itinerary JSON to styled HTML using template.Arguments:
--input: Itinerary JSON file--template: HTML template (default: assets/itinerary_template.html)--output: Output HTML fileReferences
Assets
Multi-Language Support
Place names are displayed in user language + local language:
δΈδΊ¬ε‘ (ζ±δΊ¬γΏγ―γΌ / Tokyo Tower)
εζε±±ε (εζε±±ε / Wakayama Castle)
Supported languages: Chinese (zh), English (en), Japanese (ja), Korean (ko)
Output Example
Generated HTML includes:
Integration with Other Skills
This skill calls:
weather β Daily forecastsgoplaces β Attraction and restaurant searchgog β Gmail parsing (optional, requires GOG_KEYRING_PASSWORD)notion β Sync to Notion database (optional, requires Notion API key)Tips
Troubleshooting
Future Enhancements
π‘ Examples
Basic Usage
# Generate itinerary from user input
python3 scripts/generate_itinerary.py \
--destination "Tokyo, Osaka, Kyoto" \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--language zh \
--output ./japan_trip.html
With Gmail Integration
# Extract bookings from Gmail and generate itinerary
python3 scripts/gmail_parser.py \
--account rachelchoo1212@gmail.com \
--after "2026-03-01" \
--output ./bookings.jsonpython3 scripts/generate_itinerary.py \
--bookings ./bookings.json \
--destination "Tokyo, Osaka" \
--start-date "2026-03-06" \
--end-date "2026-03-15" \
--output ./trip.html