Skip To Main Content
All modules

Stays

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

Staystay

A hotel, rental, or friend's-place reservation.

stays_queryStaysDashboardFindthrough vritto_find

List all non-archived stays with derived status/nights and trip links. Rows are compact summaries plus headline counts; pass detail 'full' only when the user needs confirmation codes, arrival details, costs, or notes. Use for any lodging question. Do not call this just to fetch an ID for a write.

FieldTypeDescription
detailone of summary, fullResponse shape: "summary" (default, headline counts + compact stay rows) or "full" (every field incl. confirmation codes, arrivalDetails, costs, and notes).
stays_upsertStayCreate or Updatethrough vritto_create or vritto_update

Create or update one lodging reservation. Omit record.id to create (name + checkInDate + checkOutDate required); include a real record.id to update, sent fields merge. freeCancelUntil must be user-confirmed.

FieldTypeDescription
record*objectStay fields; name + checkInDate + checkOutDate required when creating.
record.idstringExisting stay ID to update. Omit to create.
record.sourceone of manual, gmail, sahai, bankWhere this came from. Leave unset for a manual entry.
record.namestringProperty or place name. Required when creating.
record.kindone of hotel, rental, hostel, friends_family, otherDefaults to 'hotel'.
record.brandNamestringHotel chain/brand; the server resolves a logo.
record.addressstring
record.checkInDatestringRequired when creating.
record.checkOutDatestringRequired when creating.
record.checkInTimestringLocal wall time, e.g. '15:00'.
record.checkOutTimestring
record.timezonestringProperty's IANA zone when known.
record.confirmationCodestring
record.roomNumberstringRoom/unit number, e.g. '1207', often assigned at check-in.
record.bookingSourcestringe.g. 'Booking.com', 'Airbnb', 'direct'.
record.placeKeystringPlaces atlas key of the property when known, links the stay into the Places graph; else omit.
record.costAmountnumberTotal stay cost.
record.costCurrencystring
record.costStatusone of paid, estimatedDefaults to 'paid'. Set 'estimated' whenever the amount is a quote, guess, or not-yet-charged total, e.g. free-cancellation bookings before checkout or 'it'll be around $600'.
record.arrivalDetailsobjectArrival info. Providing this object REPLACES all four fields, read the stay first and send back every value you want kept.
record.guestPersonIdslist of stringPeople IDs of others staying too (resolve via the People module).
record.freeCancelUntilstringFree-cancellation deadline as ISO WITH offset. ALWAYS confirm this with the user before setting, it drives a reminder and must never be silently assumed from a policy text.
record.hostPersonIdstringPeople ID of the host (friends_family only).
record.tripIdstringTrip this stay belongs to (resolve via trips_queryTripsDashboard).
record.canceledboolean
record.notesstring
Example input
{
  "record": {
    "name": "Hotel Okura",
    "kind": "hotel",
    "checkInDate": "2026-11-03",
    "checkOutDate": "2026-11-08",
    "confirmationCode": "OK-55821",
    "costAmount": 1480,
    "costCurrency": "USD"
  }
}
stays_rateStayUpdatethrough vritto_update

Rate a completed stay 1–5 with an optional note (feeds future 'where to stay' recall). Resolve the ID first.

FieldTypeDescription
stayId*stringStay ID from a prior stays_queryStaysDashboard result, never invented.
rating*integer
ratingNotestring
stays_deleteStayDeletethrough vritto_delete

Delete (archive) one stay. Only for explicit removals, a canceled reservation should be upserted with canceled:true instead. Resolve the ID first.

FieldTypeDescription
stayId*stringStay ID from a prior stays_queryStaysDashboard result, never invented.