Skip To Main Content
All modules

Trips

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.

Triptrip

A trip with destinations, dates, companions, and budget.

trips_queryTripsDashboardFindthrough vritto_find

List trips, itinerary activities, packing lists, and packing templates. Rows are compact summaries plus headline counts; pass detail 'full' only when the user needs complete records (notes, budgets, companions, every activity, packing items). Use for any travel question. Do not call this just to fetch an ID for a write.

FieldTypeDescription
detailone of summary, fullResponse shape: "summary" (default, headline counts + compact trip/activity rows) or "full" (every trip, activity, packing list, and template with all fields incl. notes).
trips_upsertTripCreate or Updatethrough vritto_create or vritto_update

Create or update one trip. Omit record.id to create (name required); include a real record.id to update, sent fields merge, but legs replace the whole array when provided. Dates derive from leg dates when omitted.

Note: legs replaces the whole route when sent.

FieldTypeDescription
record*objectTrip fields; name required when creating.
record.idstringExisting trip ID to update. Omit to create.
record.namestringTrip name, e.g. 'Singapore + KL, October'. Required when creating.
record.statusone of idea, planning, upcoming, active, completed, canceledDefaults to 'planning'.
record.legslist of objectOrdered destinations. A one-city trip is one leg.
record.startDatestringFirst day. Derived from leg dates when omitted.
record.endDatestringLast day. Derived from leg dates when omitted.
record.companionPersonIdslist of stringPeople IDs of travel companions (resolve via the People module).
record.notesstring
record.budgetAmountnumberBudget envelope; null clears it.
record.budgetCurrencystringISO currency, default USD.
record.tagslist of string
record.pinnedbooleanPin the trip to the top of the list, only on explicit user ask.
record.primaryTimezonestringMain destination IANA zone, e.g. 'Asia/Tokyo', the trip's default clock when legs don't decide.
Example input
{
  "record": {
    "name": "Japan in November",
    "status": "upcoming",
    "legs": [
      {
        "label": "Tokyo",
        "arrivalDate": "2026-11-03",
        "departureDate": "2026-11-08",
        "timezone": "Asia/Tokyo"
      },
      {
        "label": "Kyoto",
        "arrivalDate": "2026-11-08",
        "departureDate": "2026-11-12",
        "timezone": "Asia/Tokyo"
      }
    ]
  }
}
trips_deleteTripDeletethrough vritto_delete

Delete (archive) one trip. Only for explicit removals, a finished trip should be status 'completed', not deleted. Resolve the ID first.

FieldTypeDescription
tripId*stringTrip ID from a prior trips_queryTripsDashboard result, never invented.

Trip Activitytrip_activity

An itinerary item: activity, meal, transit, or note.

trips_upsertActivityCreate or Updatethrough vritto_create or vritto_update

Create or update one itinerary item (activity, meal, transit, or note) on a trip. Omit record.id to create (tripId + title + startAt required). startAt must carry the destination's UTC offset and timezone its IANA zone.

FieldTypeDescription
record*objectActivity fields; tripId + title + startAt required when creating.
record.idstringExisting activity ID to update. Omit to create.
record.tripId*stringTrip ID from a prior trips_queryTripsDashboard result, never invented.
record.kindone of activity, transit, food, noteDefaults to 'activity'.
record.transitModeone of train, car_rental, bus, ferry, rideshare, otherOnly meaningful when kind is 'transit'.
record.titlestringe.g. 'Dinner at Jumbo Seafood'. Required when creating.
record.startAtstringStart as ISO 8601 WITH the segment's local UTC offset, e.g. '2026-10-05T19:00:00+08:00'. Required when creating.
record.endAtstring
record.timezonestringIANA zone the item happens in, e.g. 'Asia/Singapore'.
record.placeKeystringPlaces atlas key of the venue when known, links the activity into the Places graph; else omit.
record.addressstring
record.costAmountnumber
record.costCurrencystring
record.bookingRefstring
record.urlstring
record.notesstring
trips_deleteActivityDeletethrough vritto_delete

Delete (archive) one itinerary item. Resolve the ID with trips_queryTripsDashboard first.

FieldTypeDescription
activityId*stringActivity ID from a prior dashboard read.

Packing Listpacking_list

A trip's packing list.

trips_upsertPackingListCreate or Updatethrough vritto_create or vritto_update

Create or update a trip's packing list: checking items off, adding items, renaming. Send the COMPLETE items array every time; the server replaces the stored list with it.

Note: items replaces the whole list; send every item, not just changes.

FieldTypeDescription
record*objectPacking list; tripId required, items is the full array.
record.idstringExisting list ID to update. Omit to create.
record.tripId*stringTrip ID from a prior trips_queryTripsDashboard result, never invented.
record.namestringDefaults to 'Packing'.
record.forPersonIdstringPeople ID when this list is for one specific traveler (per-person packing).
record.fromTemplateIdstringPacking template ID (from the dashboard read) to seed items from, applies only when CREATING a list.
record.itemslist of objectThe FULL item array, send every item, not just changes (the server replaces the list).