create_expense_draft
ChatGPTCreate an idempotent, tracking-only expense draft for an explicitly resolved Leave trip. Amounts are integer minor units and dates are YYYY-MM-DD in the trip timezone. This does not create debts or mutate Leave until the user approves it in Leave.
create_itinerary_event_draft
ChatGPTUse this tool only when the user requests exactly one new itinerary event. If the user requests 2 to 10 events, a plan, or a schedule, do not call this tool repeatedly; call create_itinerary_event_drafts exactly once. Supply destination-local wall-clock times and an IANA timezone. For selected travelers, first call list_itinerary_audience_options and pass exact audience references. This creates only a pending Leave draft for later user approval. Never retry with a new idempotency_key.
create_itinerary_event_drafts
ChatGPTWhen the user requests 2 to 10 itinerary events, a plan, or a schedule, call this tool exactly once with every requested event. Do not call create_itinerary_event_draft repeatedly. Every item requires its own idempotency key, destination-local wall-clock times, IANA timezone, audience, and attendance mode. The batch is atomic: if any item is invalid or would exceed the trip's available ChatGPT draft capacity, no new drafts are created. Free trips allow 10 pending drafts per connected user; Trip Pass trips allow 30. The user must still review and approve each draft in Leave. Never retry with new idempotency keys.
create_note_draft
ChatGPTCreate a pending note draft in one explicitly resolved Leave trip. This does not create the note; the user must review and approve it in Leave. Do not put passwords, identity numbers, payment credentials, or invite tokens in a note. Use the same stable idempotency_key when retrying the same request.
create_task_draft
ChatGPTUse this tool only when the user requests exactly one new task. If the user requests 2 to 10 tasks, a checklist, or a packing list, do not call this tool repeatedly; call create_task_drafts exactly once. Assignment supports everyone, the connected user, or one exact assignee_ref returned by list_trip_task_assignees. This creates only a pending Leave draft for later user approval. Use a stable unique idempotency_key for retries.
create_task_drafts
ChatGPTWhen the user requests 2 to 10 tasks, a checklist, or a packing list, call this tool exactly once with every requested task. Do not call create_task_draft repeatedly. Every task requires its own idempotency key and assignment. The batch is atomic: if any task is invalid or would exceed the trip's available ChatGPT draft capacity, no new drafts are created. Free trips allow 10 pending drafts per connected user; Trip Pass trips allow 30. The user must still review and approve each draft in Leave. Never retry with new idempotency keys.
get_chatgpt_draft_status
ChatGPTCheck whether one exact change drafted through ChatGPT is pending Leave approval, committed, rejected, failed, or expired. Returns only minimal status and committed object identity; it never returns the draft payload or another user's drafts.
get_expense_balances
ChatGPTGet what the connected Leave user owes and is owed in one explicitly resolved trip. Amounts are integer minor currency units; this does not expose payment credentials.
get_itinerary_event
ChatGPTRead one visible itinerary event from an explicitly resolved Leave trip using an exact event ID returned by a Leave tool. Returns UTC and destination-local times without exposing traveler contact details or booking confirmation codes.
get_my_agenda
ChatGPTRead the connected user's visible itinerary across all active Leave trips for one bounded ISO 8601 interval. Defaults to the next 30 days. Results include exact trip and event IDs so any follow-up write can resolve one trip and event explicitly.
get_trip_budget_summary
ChatGPTCompare one exact Leave trip's configured category budgets with all visible non-cancelled expense spend in the trip currency. Returns integer minor units and category totals only. Expenses from blocked counterparties are excluded, and no expense, member, receipt, split, or payment details are returned.
get_trip_document
ChatGPTRead safe metadata for one exact visible Leave trip document. Identity documents, file contents, filenames, media URLs, signed credentials, and uploader identifiers are never returned.
get_trip_expense
ChatGPTRead one visible expense from an explicitly resolved Leave trip using an exact expense ID returned by a Leave tool. Returns the connected user's relative split only and excludes receipts and payment credentials.
get_trip_limits
ChatGPTRead the current Leave limits and usage counts for one exact trip, including ChatGPT draft creation and pending-review capacity. Use this to explain why the trip cannot add another traveler, item, or draft, or whether it is near a limit. Returns product-capacity facts only; it exposes no billing identifiers, purchases, member identities, content, or payment data.
get_trip_note
ChatGPTGet one exact visible Leave note after trip membership, moderation, blocked-user, and linked-event visibility rules are applied.
get_trip_place_details
ChatGPTGet current Google Places details for one exact place_id returned by search_trip_places. Results are public external data, may change, and retain Google Maps attribution. Photos and provider tokens are never returned.
get_trip_summary
ChatGPTGet a compact summary of one explicitly resolved Leave trip, including its next visible itinerary items. Resolve the trip first; never guess a trip ID.
get_trip_task
ChatGPTGet one exact visible Leave task. Due dates are trip calendar dates in YYYY-MM-DD form, not UTC instants.
get_upcoming_itinerary
ChatGPTRead visible itinerary events for one explicitly resolved Leave trip. For requests such as tomorrow, supply an exact ISO 8601 start_time and end_time based on the trip timezone.
list_itinerary_audience_options
ChatGPTList active, non-blocked travelers who can be selected for a private itinerary audience in one exact Leave trip. Returns opaque trip-scoped audience references and display names only. Call this immediately before a selected-traveler event draft; never guess or reuse a reference from another trip.
list_trip_expenses
ChatGPTList or search a bounded set of visible expenses for one explicitly resolved Leave trip. Expense dates are trip-local YYYY-MM-DD calendar dates. Amounts use integer minor units; receipt files, payment credentials, and other members' internal identifiers are excluded.
list_trip_notes
ChatGPTList or search a bounded set of visible, moderation-filtered Leave notes for one explicitly resolved trip. Notes from users blocked by the connected user are excluded.
list_trip_task_assignees
ChatGPTList active, non-blocked task assignees for one exact Leave trip. Returns only a trip-scoped opaque assignee reference, display name, and whether the entry is the connected user. It never returns user IDs, usernames, contact details, avatars, or removed members.
list_trip_tasks
ChatGPTList or search visible Leave tasks for one explicitly resolved trip. Due-date filters are trip-local YYYY-MM-DD calendar dates. Results identify assignment safely without exposing member contact details.
list_trip_travelers
ChatGPTList the active travelers visible to the connected user in one exact Leave trip. Returns only display names, relative roles, and which traveler is the connected user. It excludes member identifiers, usernames, contact details, avatars, invite state, payment data, and locations. Use list_trip_task_assignees instead when a task must target one specific traveler.
list_trips
ChatGPTList the connected Leave user's accessible trips. Use this before a trip-scoped request when the user did not provide an exact trip ID or an unambiguous trip name.
resolve_trip
ChatGPTResolve an exact Leave trip ID, a user-supplied trip name, or the user's safe default. Returns candidates instead of guessing when more than one trip could match. This never changes the active trip.
search_trip_documents
ChatGPTSearch safe metadata for visible Leave trip documents. Returns no file contents, identity documents, receipt media, storage URLs, filenames, or signed credentials.
search_trip_itinerary
ChatGPTFind visible itinerary events in one exact Leave trip by text, category, or bounded ISO 8601 interval. Use this to locate a flight, accommodation, reservation, or activity, then call get_itinerary_event for safe booking details. At least one search filter is required.
search_trip_places
ChatGPTSearch Google Places around one explicitly resolved Leave trip. Put any user-specified neighborhood, landmark, accommodation address, or other area directly in query. Results are public external data, may change, and retain Google Maps attribution. This never changes the trip.
set_my_itinerary_rsvp
ChatGPTSet only the connected user's RSVP for one exact visible itinerary event. Call this only after the user explicitly confirms the RSVP status. Identical retries are safe no-ops; this never changes another traveler's response.
update_document_links_draft
ChatGPTCreate an approval-required draft that replaces the visible itinerary-event links for one exact safe document. Read the document first and pass its exact updated_at. Use only exact visible event IDs; an empty array removes all links visible to the connected user while preserving hidden links. This never exposes or changes the file, title, type, or visibility.
update_expense_draft
ChatGPTCreate an idempotent update draft for exact, creator-owned Leave expense details. Requires the expense's exact updated_at version and never applies changes until the user approves them in Leave. Amounts, currencies, dates, splits, receipts, and settlement state are intentionally unchanged.
update_itinerary_event_draft
ChatGPTUse this tool only when the user requests changes to exactly one itinerary event. If the user requests changes to 2 to 10 events, do not call this tool repeatedly; call update_itinerary_event_drafts exactly once. First call get_itinerary_event and pass its exact event_id and updated_at. Time changes require complete destination-local start/end values and an IANA timezone. Selected-traveler audience changes require fresh references from list_itinerary_audience_options. Nothing changes until the user approves the draft in Leave.
update_itinerary_event_drafts
ChatGPTWhen the user requests changes to 2 to 10 itinerary events, call this tool exactly once with every requested update. Do not call update_itinerary_event_draft repeatedly. Read each event first and pass its exact event_id and updated_at. This batch only changes event content, location, category, or destination-local schedule; it cannot change audience, attendance mode, or RSVP responses. Time changes require complete local start/end values and an IANA timezone. The batch is atomic and nothing changes until the user approves each draft in Leave.
update_note_draft
ChatGPTCreate an approval-required update draft for one exact Leave note. Read the note first and pass its exact updated_at value. No note changes until the user approves in Leave. Use the same idempotency_key only when retrying the same update.
update_task_draft
ChatGPTCreate an approval-required update draft for one exact visible task. Read the task first and pass its exact updated_at. Due dates are YYYY-MM-DD trip calendar dates. Assignment changes support everyone, me, unassigned, or one exact assignee_ref returned by list_trip_task_assignees; never guess a member. No task changes until approval in Leave.