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 journey away from home (cities, dates, companions, members from every module, budget and spend), and with a type its ideas, activities, packing lists, suggestions and conflicts.
trips_findFindthrough vritto_findRead Trips: a list of trips (compact rows), one trip by id (cities, nights, route, members by module, spend), or type 'money', 'ready', 'atlas', 'home', 'suggestion', 'conflict', 'idea', 'activity', 'packing_list' or 'packing_template'. Use for any travel question; detail 'full' only when complete records are needed.
| Field | Type | Description |
|---|---|---|
| type | one of trip, idea, activity, packing_list, packing_template, suggestion, conflict, money, ready, atlas, home, passport, stats, wish | What to read: 'trip' (default; a list, or one trip with id), 'idea' (trip ideas), 'activity', 'packing_list', 'packing_template', 'suggestion' (Looks Like a Trip), 'conflict' (bookings that cannot both have happened), 'money' (what a trip cost, by category; needs id), 'ready' (what is left to book o |
| id | string | One trip (or suggestion, conflict) by id. |
| view | one of upcoming, past, all | 'upcoming' trips not yet over, 'past' finished ones newest first, 'all' (default). |
| from | string | Earliest date, inclusive (trips overlapping it count). |
| to | string | Latest date, inclusive. |
| query | string | Text to match: a trip name or city. |
| year | integer | atlas: only this year. |
| kind | one of vacation, home_visit, work, event, move, day_trip | atlas and lists: only trips of this kind. |
| limit | integer | Rows to return, default 30. |
| detail | one of summary, full | 'summary' (default) compact rows; 'full' every field including notes, legs and packing items. |
Example input
{
"view": "upcoming"
}trips_addCreatethrough vritto_createAdd a trip, an idea, a Bucket List wish, an activity, a packing list or a packing template (type, default 'trip'). A wish needs a label. A trip needs a name; an activity needs tripId, title and startAt with the destination's UTC offset. Never a trip from a single booking.
Note: legs is the route in order; a trip is never made from one booking (bookings join trips on their own).
| Field | Type | Description |
|---|---|---|
| type | one of trip, idea, activity, packing_list, packing_template, wish | Record type; 'trip' when omitted. |
| record* | object | The record. Fields not named for the type are ignored. |
| record.id | string | Existing trip ID to update. Omit to create. |
| record.name | string | Trip name, e.g. 'Singapore + KL, October'. Required when creating. |
| record.status | one of idea, planning, upcoming, active, completed, canceled | Defaults to 'planning'. |
| record.legs | list of object | Ordered destinations. A one-city trip is one leg. |
| record.startDate | string | First day. Derived from leg dates when omitted. |
| record.endDate | string | Last day. Derived from leg dates when omitted. |
| record.companionPersonIds | list of string | People IDs of travel companions (resolve via the People module). |
| record.notes | string | |
| record.budgetAmount | number | Budget envelope; null clears it. |
| record.budgetCurrency | string | ISO currency; leave out for the account's currency. |
| record.tags | list of string | |
| record.pinned | boolean | Pin the trip to the top of the list, only on explicit user ask. |
| record.primaryTimezone | string | Main destination IANA zone, e.g. 'Asia/Tokyo', the trip's default clock when legs don't decide. |
| record.tripId | string | activity, packing_list: the trip it belongs to (from trips_find). |
| record.kind | one of activity, transit, food, note | activity: 'activity', 'food' or 'note' (rides, rentals, trains, buses and ferries are Transport journeys). |
| record.transitMode | one of train, car_rental, bus, ferry, rideshare, other | Only meaningful when kind is 'transit'. |
| record.title | string | activity: e.g. 'Dinner at Jumbo Seafood'. |
| record.startAt | string | activity: ISO 8601 with the destination's UTC offset. |
| record.endAt | string | activity: ISO 8601 with the destination's UTC offset. |
| record.timezone | string | activity: the IANA zone it happens in. |
| record.placeKey | string | activity: Places atlas key of the venue; wish: of the landmark. Only when known. |
| record.address | string | |
| record.costAmount | number | activity: the price of this one item. |
| record.costCurrency | string | |
| record.bookingRef | string | |
| record.url | string | |
| record.forPersonId | string | packing_list: People ID when the list is for one traveler. |
| record.fromTemplateId | string | packing_list: template to seed a NEW list from. |
| record.items | list of object | packing_list, packing_template: the FULL item array (the server replaces the list). |
| record.season | string | idea: a rough season, e.g. 'April' or 'Summer 2027'. |
| record.kinds | list of one of | trip: its kinds, leading kind first. |
| record.tone | one of bring_back, simple, quiet | How to Remember This Trip: 'bring_back' resurfaces it (anniversaries), 'simple' keeps it without resurfacing, 'quiet' is for a hard trip (never resurfaced, told plainly). Set only when the person asks. |
| record.label | string | wish: the place or experience, e.g. 'Iceland', 'Kyoto' or 'See the northern lights'. |
| record.wishKind | one of place, experience | wish: 'place' (default) or 'experience'. |
| record.placeKind | one of city, country, landmark | wish: what the place is. |
| record.countryCode | string | wish: ISO country code, required for a country. |
| record.note | string | wish: why, or what to do there. |
Example input
{
"type": "trip",
"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_changeUpdatethrough vritto_updateChange Trips: a record by record.id (sent fields merge; legs and items replace whole), a trip's membership, a suggestion (accept or dismiss), a conflict (keep the side that happened), an open journey (liveHere true or false), or 'assemble' to look for trips again. Resolve ids with trips_find first.
Note: legs and packing items replace whole when sent. Accept a suggestion with type 'suggestion' and decision 'accept'; attach a record with type 'membership'.
| Field | Type | Description |
|---|---|---|
| type | one of trip, idea, activity, packing_list, packing_template, membership, suggestion, conflict, home, assemble, wish, layover | What to change: 'trip' (default), 'idea', 'activity', 'packing_list', 'packing_template', 'membership' (attach a record to a trip or remove it), 'suggestion' (accept or dismiss a Looks Like a Trip), 'conflict' (say which of two bookings happened), 'home' (answer an open journey by its since: liveHer |
| id | string | The suggestion, conflict or trip to change. |
| ids | list of string | suggestion: several at once (Accept All). |
| record | object | The record. Fields not named for the type are ignored. |
| record.id | string | Existing trip ID to update. Omit to create. |
| record.name | string | Trip name, e.g. 'Singapore + KL, October'. Required when creating. |
| record.status | one of idea, planning, upcoming, active, completed, canceled | Defaults to 'planning'. |
| record.legs | list of object | Ordered destinations. A one-city trip is one leg. |
| record.startDate | string | First day. Derived from leg dates when omitted. |
| record.endDate | string | Last day. Derived from leg dates when omitted. |
| record.companionPersonIds | list of string | People IDs of travel companions (resolve via the People module). |
| record.notes | string | |
| record.budgetAmount | number | Budget envelope; null clears it. |
| record.budgetCurrency | string | ISO currency; leave out for the account's currency. |
| record.tags | list of string | |
| record.pinned | boolean | Pin the trip to the top of the list, only on explicit user ask. |
| record.primaryTimezone | string | Main destination IANA zone, e.g. 'Asia/Tokyo', the trip's default clock when legs don't decide. |
| record.tripId | string | activity, packing_list: the trip it belongs to (from trips_find). |
| record.kind | one of activity, transit, food, note | activity: 'activity', 'food' or 'note' (rides, rentals, trains, buses and ferries are Transport journeys). |
| record.transitMode | one of train, car_rental, bus, ferry, rideshare, other | Only meaningful when kind is 'transit'. |
| record.title | string | activity: e.g. 'Dinner at Jumbo Seafood'. |
| record.startAt | string | activity: ISO 8601 with the destination's UTC offset. |
| record.endAt | string | activity: ISO 8601 with the destination's UTC offset. |
| record.timezone | string | activity: the IANA zone it happens in. |
| record.placeKey | string | activity: Places atlas key of the venue; wish: of the landmark. Only when known. |
| record.address | string | |
| record.costAmount | number | activity: the price of this one item. |
| record.costCurrency | string | |
| record.bookingRef | string | |
| record.url | string | |
| record.forPersonId | string | packing_list: People ID when the list is for one traveler. |
| record.fromTemplateId | string | packing_list: template to seed a NEW list from. |
| record.items | list of object | packing_list, packing_template: the FULL item array (the server replaces the list). |
| record.season | string | idea: a rough season, e.g. 'April' or 'Summer 2027'. |
| record.kinds | list of one of | trip: its kinds, leading kind first. |
| record.tone | one of bring_back, simple, quiet | How to Remember This Trip: 'bring_back' resurfaces it (anniversaries), 'simple' keeps it without resurfacing, 'quiet' is for a hard trip (never resurfaced, told plainly). Set only when the person asks. |
| record.label | string | wish: the place or experience, e.g. 'Iceland', 'Kyoto' or 'See the northern lights'. |
| record.wishKind | one of place, experience | wish: 'place' (default) or 'experience'. |
| record.placeKind | one of city, country, landmark | wish: what the place is. |
| record.countryCode | string | wish: ISO country code, required for a country. |
| record.note | string | wish: why, or what to do there. |
| decision | one of accept, dismiss, defer, undo, done, not_done, plan, remove, restore, undo_not_done | suggestion: 'accept' or 'dismiss' (Not a Trip); conflict: 'defer' (Not Sure); wish: 'done' (ticked by hand), 'not_done' (take a tick back; with tripId for a trip's tick), 'plan' (turn it into a trip idea); 'undo' reverses the last decision. |
| keep | string | conflict: the key of the side that happened (the other is marked Canceled). |
| name | string | suggestion: a name to accept it under. |
| startDate | string | suggestion: a corrected first day. |
| endDate | string | suggestion: a corrected last day. |
| kinds | list of one of | suggestion: the kinds to accept it with. |
| tone | one of bring_back, simple, quiet | How to Remember This Trip: 'bring_back' resurfaces it (anniversaries), 'simple' keeps it without resurfacing, 'quiet' is for a hard trip (never resurfaced, told plainly). Set only when the person asks. |
| legs | list of object | suggestion accept: every destination in order, replacing the cities it found. |
| companionPersonIds | list of string | suggestion accept: who came (People ids), replacing the ones it found. |
| excludeMembers | list of object | suggestion accept: records from its members that were not part of the trip; they stay out. |
| tripId | string | membership: the trip; tone: the trip to set. |
| moduleId | string | membership: the module the record lives in: flights, stays, transport, dining, places, finance, movies, memories, journal or files. |
| entityId | string | membership: the record's id in its module. |
| attach | boolean | membership: true attaches, false removes. |
| restoreTripId | string | Undo only: leave out. |
| restoreSource | string | Undo only: leave out. |
| since | string | home: the open journey's first day (its since from trips_find type 'home'). |
| liveHere | boolean | home: true when the person says they live there now, false when they are only visiting. |
| key | string | layover: the connection's key from trips_find type 'passport' (transit) or the trip's summary. |
| stopKind | one of transit, stopover | layover: 'transit' when the person stayed in the airport, 'stopover' when they went into the city; leave out to go back to Vritto's own call. |
Example input
{
"type": "trip",
"record": {
"id": "trip-abc123",
"budgetAmount": 2000,
"budgetCurrency": "USD"
}
}trips_removeDeletethrough vritto_deleteRemove one trip, idea, wish, activity, packing list or packing template (type, default 'trip'). Only for explicit removals: a finished trip stays. Removing a trip lets go of the records Vritto attached; records the person attached keep their choice.
| Field | Type | Description |
|---|---|---|
| type | one of trip, idea, activity, packing_list, packing_template, wish | Record type; 'trip' when omitted. |
| id | string | The record's id (from trips_find). |
| tripId | string | A trip's id (older name for id). |
| activityId | string | An activity's id (older name for id). |