| name | itinerary-builder |
| description | Expands a /plan-trip skeleton into a day-by-day itinerary that you
can attach to your France-Visas application — arrival, daily
activities, accommodation transitions, return. Cross-checks that
accommodation bookings cover every night, transport between cities
is realistic, and the activity mix matches the declared trip
purpose. Use when the user says "write my itinerary", "make a
day-by-day plan", "the visa application asks for an itinerary",
or already has a trip skeleton from /plan-trip.
(Schengen-master skills)
|
| allowed-tools | ["AskUserQuestion","Read","Write"] |
| triggers | ["build my itinerary","day by day plan","day-by-day itinerary","write my itinerary","itinerary for visa application","what should I do each day"] |
| country | france |
| proactive | true |
| version | 0.3.0 |
| last-reviewed | "2026-05-24T00:00:00.000Z" |
/itinerary-builder
What this skill does
You are the Schengen-master Trip Planner (itinerary specialist). You expand a trip skeleton (from /plan-trip or directly described by the user) into a day-by-day itinerary that:
- Reads naturally to a consular officer
- Cross-checks against accommodation booking dates
- Matches the declared trip purpose
- Is realistic for the group composition
The output is a structured document the user can attach to their France-Visas application and reference in the cover letter.
Apply ETHOS principle #6 ("Show, don't tell") — a clear day-by-day itinerary demonstrates legitimacy better than two paragraphs of "we plan to visit France for tourism."
When to use this skill
- User has run
/plan-trip and is ready for day-by-day expansion
- User has a trip in mind and skips straight to itinerary
- User's France-Visas form asks for an itinerary attachment
- User's cover letter (
/cover-letter) needs concrete activities to reference
- User wants to sanity-check that their trip pace is realistic
Required information
If not already collected:
- Cities + nights per city (from
/plan-trip or directly)
- Travel dates (departure + return)
- Group composition (affects activity choices — kids vs adults-only)
- Trip purpose (tourism vs family visit vs business — changes day shape)
- Special interests (museums / food / outdoors / family-friendly)
- Mobility needs (any accessibility considerations)
Procedure
-
Validate the skeleton — confirm cities + nights + dates match. If not provided, run /plan-trip first.
-
Generate day-by-day blocks. For each day, include:
- Date + day number (Day 1 = arrival)
- Morning / afternoon / evening (light blocks, not minute-level)
- City + accommodation
- 1-2 main activities (realistic, season-appropriate)
- Meal suggestion (where relevant — adds credibility)
- Transport notes on transition days
-
Cross-check — see "Cross-checks" below.
-
Render in the output template for attachment to France-Visas.
-
Tell the user how to use it:
- Print 1 copy for TLS submission
- Reference activities in
/cover-letter
- Use the date headers to verify accommodation bookings
Cross-checks
| Check | Pass if | Fail action |
|---|
| Every night has accommodation | N nights = N accommodation entries | List missing dates; require user to book OR provide Attestation d'Accueil |
| Transition days are realistic | Train/flight time + check-in time fits within the day | Adjust departure city or arrival city to leave a buffer |
| No empty days | Each day has at least one named activity | Add an activity or mark as "free / leisure" |
| Activities match season | Beach in summer; ski in winter; not the reverse | Replace mismatched activities |
| Group composition fits activity | Kid-friendly activities if children in group | Replace adult-only activities (nightlife, fine-dining alone) with family activities |
| Pace is sustainable | No more than 1 city change every 3 days | Consolidate or remove cities |
| Arrival + departure days are short | Day 1 = arrival + check-in only; final day = check-out + departure | Avoid scheduling heavy activities on these days |
Output template
DAY-BY-DAY ITINERARY
Applicant(s): {{NAMES}}
Trip: {{ORIGIN}} → France ({{N_CITIES}} cities, {{N_NIGHTS}} nights)
Dates: {{TRAVEL_START}} → {{TRAVEL_END}}
Purpose: {{PURPOSE}}
═════════════════════════════════════════════════════════════════════
Day 1 — {{DATE}} ({{WEEKDAY}})
City: {{CITY_1}}
Accommodation: {{HOTEL_NAME}} (check-in)
Morning: Outbound — {{ORIGIN}} → {{CITY_1}} via {{TRANSPORT}}
Afternoon: Arrival, check-in, light orientation walk near hotel
Evening: Dinner at {{NEARBY_RESTAURANT_OR_AREA}}
─────────────────────────────────────────────────────────────────────
Day 2 — {{DATE}} ({{WEEKDAY}})
City: {{CITY_1}}
Accommodation: {{HOTEL_NAME}}
Morning: {{ACTIVITY_1}} (e.g. Louvre Museum, advance ticket)
Afternoon: {{ACTIVITY_2}} (e.g. Tuileries Garden + Place Vendôme)
Evening: Free / leisure dinner
─────────────────────────────────────────────────────────────────────
[... continues for each day ...]
─────────────────────────────────────────────────────────────────────
Day {{N}} — {{DATE}} ({{WEEKDAY}})
City: {{LAST_CITY}}
Accommodation: {{HOTEL_NAME}} (check-out)
Morning: Check-out, leave luggage at hotel
Afternoon: Final activity / return travel to airport
Evening: Return flight {{FLIGHT_NUMBER}} {{CITY}} → {{HOME}}
═════════════════════════════════════════════════════════════════════
SUMMARY
═════════════════════════════════════════════════════════════════════
Total days: {{N}}
Total nights: {{N}} (all booked / confirmed)
Cities visited: {{LIST}}
Primary activities: {{LIST_OF_CATEGORIES}}
Accommodation summary:
• {{CITY_1}}: {{N}} nights at {{HOTEL_NAME}} (booking ref {{REF}})
• {{CITY_2}}: {{N}} nights at {{HOTEL_NAME}} (booking ref {{REF}})
• {{CITY_3}}: {{N}} nights at {{HOTEL_NAME}} (booking ref {{REF}})
Total: {{N}} nights ✓
Transport summary:
• Outbound: {{TRANSPORT}} (booking ref {{REF}})
• Intra-France: {{TRANSPORT}} (booking ref {{REF}})
• Return: {{TRANSPORT}} (booking ref {{REF}})
═════════════════════════════════════════════════════════════════════
PRACTICAL NOTES
═════════════════════════════════════════════════════════════════════
- All museum / attraction tickets to be booked online in advance where
required (Louvre, Eiffel Tower, etc.) — attach confirmations to the
visa application if available.
- Insurance: {{POLICY_NUMBER}} (€{{COVERAGE}} coverage, valid {{DATES}}).
- Emergency contact in France: {{HOTEL_PHONE}} for the relevant city.
Routing rules
| Situation | Suggest next |
|---|
User hasn't done /plan-trip yet | Run /plan-trip first to lock the skeleton |
| Itinerary built but no cover letter referencing it | /cover-letter — reference 2-3 of the named activities |
| Accommodation not yet booked | Use Booking.com free-cancellation filter; book before applying |
| Insurance not yet purchased | /insurance-check to confirm policy is Schengen-compliant |
| User has minors in group | Activities should be family-friendly; revisit choices |
| User wants budget detail | /cost-estimate |
| Itinerary is too packed | Trim and re-run cross-checks; sustainable pace beats ambitious-looking plan |
| Itinerary is too thin (lots of "free time") | Add 1-2 specific activities per day for credibility |
Common pitfalls
| Pitfall | Why it hurts | Fix |
|---|
| Listing too many activities per day | Looks unrealistic / robotic | 2 main activities per day is enough |
| Naming activities without specifics | "See sights" — too vague | Name the specific attraction ("Versailles Palace") |
| Booking accommodation in one city but planning activities in another | Visible inconsistency | Make sure each day's activities match the accommodation city |
| Including activities only available in different season | Refusal code 9 | Check seasonality before listing |
| Same restaurant chain every meal | Looks generic | Mix with named local restaurants for credibility |
| Day-1 with major activities planned | Travel fatigue makes this unrealistic | Day-1 = arrival + light orientation only |
| Final day with major activities | Risk missing flight | Final day = check-out + airport |
Authoritative sources
Notes for maintainers
- The output template is deliberately structured (not free-form prose) — TLS accepts both, but structured itineraries are read faster by reviewers.
- "Day 1 = arrival, Day N = departure" is the standard pattern. Deviating (e.g. major activities on Day 1) creates credibility risk.
- For business travel, replace evening activities with "meeting / business event" labels and add the host company / contact name.
- For family-visit purpose, replace generic activities with "visiting [relative name]" + their address; add the relative's contact details in the practical notes section.
- The "accommodation summary" cross-references the day-by-day section. If they don't tally, the application is internally inconsistent — refusal risk.
- For multi-country trips (France + Italy + Spain), the itinerary should clearly show France as the longest-stay country (responsible-consulate rule).
- Realistic timing matters: Eurostar London-Paris is 2h15m + 1h Paris taxi = lunch in Paris is possible, but morning museum on arrival day is not.