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_findFindthrough vritto_find

Read Stays: one stay by id, or stays filtered by view, dates, text, kind or trip (no filter gives headline counts and recent stays). Compact rows unless detail is 'full'. Use for any lodging question.

FieldTypeDescription
idstringReturn just this stay.
viewone of upcoming, past, all'upcoming' stays not yet over (soonest first), 'past' finished ones newest first, 'all' (default).
fromstringEarliest date, inclusive: stays still running on or after it.
tostringLatest date, inclusive: stays starting on or before it. ALWAYS pass from/to when the question concerns a period.
querystringText to match: a city, hotel, brand, booking site or confirmation code.
kindone of hotel, rental, hostel, friends_family, otherOnly stays of this kind.
tripIdstringOnly stays tagged to this trip.
limitintegerRows to return, default 20.
detailone of summary, full'summary' (default) compact rows; 'full' every field incl. confirmation codes, arrivalDetails, costs and notes.
Example input
{
  "view": "upcoming"
}
stays_addCreate or Updatethrough vritto_create or vritto_update

Add one lodging reservation: name, checkInDate and checkOutDate, plus what the person said. A booking already on file (same confirmation code, or name and check-in) is updated instead of duplicated. freeCancelUntil must be user-confirmed.

FieldTypeDescription
record*objectStay fields; name + checkInDate + checkOutDate required.
record.idstringLeave out when adding; to change a stay use stays_change.
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_find).
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_changeUpdatethrough vritto_update

Change one stay by record.id; sent fields merge. A cancelled booking is canceled true (never a removal); after checkout set a 1-5 rating and ratingNote. Resolve the id with stays_find first.

Note: A cancelled booking is canceled true, never a removal. arrivalDetails replaces all four of its fields when sent.

FieldTypeDescription
recordobjectThe stay's id plus the fields to change.
record.id*stringStay ID from a prior stays_find result, never invented.
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_find).
record.canceledbooleantrue when the booking was cancelled (kept, never removed).
record.notesstring
record.ratinginteger1 to 5 after the stay; null clears it.
record.ratingNotestring
stayIdstringOlder form of a rating: the stay, with rating.
ratingintegerOlder form, with stayId.
ratingNotestringOlder form, with stayId.
Example input
{
  "record": {
    "id": "stay_okura",
    "canceled": true
  }
}
stays_removeDeletethrough vritto_delete

Remove (archive) one stay. Only for explicit removals; a cancelled reservation is a stays_change with canceled true. Resolve the id first.

Note: A cancelled booking is a stays_change with canceled true instead.

FieldTypeDescription
idstringThe stay to remove.
stayIdstringOlder name for id.