EscapeLifeDocs
Early access — Phase 2

Itineraries

The Itineraries module provides trip-aware context to the AI layer. When a guest's itinerary is loaded, the AI uses it to surface relevant recommendations at the right time — dinner suggestions when an evening is unscheduled, spa availability when check-out approaches, local activities that match the group profile.

Context injection

When a guest_id with an active itinerary is passed to POST /v1/ai/chat, the AI automatically loads the guest's itinerary context. No additional parameters required — itinerary awareness is on by default.

The Itinerary object (preview)

idstringUnique itinerary ID. Prefixed itn_.
property_idstringProperty this itinerary belongs to.
guest_idstringAssociated guest.
check_indateArrival date.
check_outdateDeparture date.
room_typestring | nullAssigned or preferred room type.
party_sizeintegerNumber of guests in the party.
party_compositionobjectadults, children, infants counts.
eventsItineraryEvent[]Ordered list of scheduled events (dining, activities, treatments, transport).
notesstring | nullFree-text notes visible to the AI and property staff.
statusstringpre_arrival, in_stay, post_stay, cancelled.

Sample itinerary payload

Itinerary with events
{
  "id": "itn_k1l2m3n4",
  "property_id": "pty_xyz123",
  "guest_id": "gst_a1b2c3d4e5f6",
  "check_in": "2026-03-20",
  "check_out": "2026-03-24",
  "room_type": "ocean_view_suite",
  "party_size": 2,
  "party_composition": { "adults": 2 },
  "status": "pre_arrival",
  "events": [
    {
      "type": "dining",
      "name": "Sunset Restaurant Reservation",
      "datetime": "2026-03-20T20:00:00",
      "duration_minutes": 90,
      "notes": "Anniversary dinner — champagne on arrival"
    },
    {
      "type": "treatment",
      "name": "Couples Spa Retreat",
      "datetime": "2026-03-21T11:00:00",
      "duration_minutes": 90
    }
  ],
  "notes": "Honeymoon stay. Guest preferences: gluten-free dining, ocean views."
}

AI context example

With an active itinerary, the AI uses the scheduled events and unscheduled time windows to frame recommendations:

Chat request with guest_id (itinerary loaded automatically)
{
  "messages": [
    { "role": "user", "content": "What should we do tomorrow afternoon?" }
  ],
  "guest_id": "gst_a1b2c3d4e5f6",
  "channel": "in_app"
}

AI response grounded on itinerary

"Tomorrow afternoon looks open between 2pm and your Couples Spa Retreat at 5pm. That's a perfect window for the paddle boards — weather looks clear. The water sports desk opens at 9am if you'd like to reserve ahead. Alternatively, the golf course is about a 10-minute cart ride and usually has afternoon tee times available. Shall I check availability for either?"

Planned endpoints (early access)

POST/v1/itineraries

Create an itinerary for a guest.

GET/v1/itineraries/{id}

Retrieve an itinerary with all events.

PATCH/v1/itineraries/{id}

Update itinerary dates, room, or notes.

POST/v1/itineraries/{id}/events

Add an event to the itinerary.

DELETE/v1/itineraries/{id}/events/{event_id}

Remove an event.