Research and catalog hotel options for multi-day trips. Produces a Word document with a table of 2-3 hotel candidates per day, including pricing and amenities. Uses web search for hotel research and the 'doc' skill for DOCX output.
Research hotel options for a trip and produce a well-formatted Word document with recommendations organized by day.
Note: This skill uses web search for hotel research and depends on the
docskill for DOCX creation.
ceil(N / 2)doc skillIf the user attaches an itinerary (PDF, image, document, or text), treat it as ground truth:
The user's itinerary represents their confirmed travel plans. Your job is to find hotel options that fit their plan, not to improve or modify the plan.
IMPORTANT - Language: Match the language of the output document to the language of the attachment. If the user sends an itinerary in Chinese, produce the Word document in Chinese. If in English, use English. This applies to all text: headers, table content, notes, and labels.
Gather Trip Details
Search for Hotels Use web search to find hotel options. Search queries should include:
Example searches:
"hotels in [City] [Month] 2026 with kitchen under $200"
"[City] hotels with washer dryer [dates]"
"best hotels near [landmark] [City]"
Sources to check:
Compile Candidates For each night/location, identify 2-3 strong options:
Generate Word Document
from docx import Document
from docx.shared import Pt, Inches
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.text import WD_ALIGN_PARAGRAPH
doc = Document()
# Title
title = doc.add_heading("Hotel Itinerary", level=0)
# Trip summary
doc.add_paragraph(f"Destination: [City/Cities]")
doc.add_paragraph(f"Dates: [Start] - [End]")
doc.add_paragraph(f"Travelers: [N] people ([M] rooms)")
doc.add_paragraph(f"Budget: $[X]-[Y] per room/night")
if amenities:
doc.add_paragraph(f"Required Amenities: [list]")
doc.add_paragraph() # spacing
# Table with columns: Day | Hotel | Price/Night | Booking URL | Amenities | Notes
table = doc.add_table(rows=1, cols=6)
table.style = 'Table Grid'
# Header row
headers = ["Day", "Hotel", "Price/Night", "Booking URL", "Amenities", "Notes"]
hdr_cells = table.rows[0].cells
for i, header in enumerate(headers):
hdr_cells[i].text = header
hdr_cells[i].paragraphs[0].runs[0].bold = True
# Add rows for each day's options
# Day 1 - Option 1 (best)
# Day 1 - Option 2
# Day 1 - Option 3
# Day 2 - Option 1 (best)
# ...
doc.save("Hotel_Itinerary_[Destination].docx")
Review Output
| Day | Hotel | Price/Night | Booking URL | Amenities | Notes |
|---|---|---|---|---|---|
| Day 1 (Apr 10) - Seattle | The Edgewater | $310 | booking.com/... | Waterfront, Gym | On the water, 4.4 stars |
| Day 1 (Apr 10) - Seattle | Hyatt Regency Seattle | $289 | hyatt.com/... | Pool, Gym, WiFi | Downtown, 4.5 stars |
| Day 1 (Apr 10) - Seattle | Motif Seattle | $265 | hotels.com/... | Gym, Restaurant | Belltown, 4.3 stars |
| Day 2 (Apr 11) - Portland | The Nines | $275 | thenines.com/... | Pool, Gym, Spa | Luxury, 4.6 stars |
| Day 2 (Apr 11) - Portland | Hotel deLuxe | $245 | hoteldeLuxe.com/... | Gym, Breakfast | Downtown, 4.5 stars |
| ... | ... | ... | ... | ... |
For trips spanning multiple cities:
Save as: Hotel_Itinerary_[PrimaryDestination]_[StartDate].docx
Example: Hotel_Itinerary_Seattle_Apr2026.docx