0saas

Job ticket 614672 · consumer · boarding folder · no subscription

TripIt's trick is parsing your email. The trick works on a paste, too.

This page is a boarding folder. Paste your confirmation emails — flights, hotels, trains, the dinner booking — and a free-tier model assembles the master itinerary: strict chronological order, every code and terminal copied verbatim, every gap stamped UNKNOWN instead of guessed. A second prompt turns any day into a day sheet using your own buffer rules. Nothing here reads your inbox, tracks a flight, or updates live — and it says so.

TripIt is a trademark of TripIt, Inc. (a SAP Concur company). This is an independent, unaffiliated comparison built on TripIt's own Pro signup page, linked below and re-read every thirty days.

Boarding folder — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about TripIt. Every TripIt figure on this page comes from the linked pricing page, read 2026-09-27.

The prompt pack

Two prompts, each mapped one-to-one onto a TripIt feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What TripIt's own pricing page says

Read from tripit.com/pro on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

TripIt free vs TripIt Pro vs this page — verified 2026-09-27
The jobTripIt (free app)TripIt Pro (US$49/yr)This page + a free-tier model
PriceUS$0 — pay with inbox access (forwarding or connection)US$49 / year after the 30-day trial, as printed at signupUS$0 forever. A free-tier key costs nothing; the prompts are yours.
Itinerary assemblyForward each email to plans@tripit.comSame, plus the live layer on topPrompt 1 parses pasted text: verbatim codes, strict order, gaps stamped UNKNOWN — no forwarding
Day-of logisticsThe app's segment viewGate reminders, 'go now' style alertsPrompt 2's day sheet: your codes in hand, departure times derived only from YOUR stated buffers
Live flight statusNoYes — genuinely, and this is what US$49 buysNo, and the sheet's fixed final note says so. Check the carrier's board; paper doesn't refresh.

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where TripIt wins.

Replaced: the parse

Confirmation emails to master itinerary, as a paste instead of a forward. The copying discipline is the feature: verbatim codes, no invented times, CONFLICT lines when two pastes disagree.

Replaced: the day sheet

Per-day logistics with 'have in hand' items drawn from your own bookings and departure arithmetic shown, not asserted.

Replaced: the trip file

Both documents export as Markdown — printable, shareable with a travel companion, and readable in an airport with no signal.

NOT live

No flight status, no gate changes, no delay alerts, no fare monitoring. That layer needs real-time data feeds and it is the honest core of Pro's US$49 — this page refuses to imitate it statically.

NOT an inbox reader

No forwarding address, no email connection, no OAuth. The paste is the entire input surface, which is also the entire privacy story.

NOT a booking tool

It books nothing, changes nothing, refunds nothing. It files what you already booked.

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Master itinerary · tripit-itinerary-assembly v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite

Replaces: TripIt's core parse: confirmation emails in, one chronological master itinerary out — here without forwarding a single email to anyone.

Why this model: Itinerary assembly is extraction under a copying discipline — every time, code and address verbatim, every gap stamped UNKNOWN. Long context takes all the confirmations at once; JSON mode plus low temperature keeps the model a clerk instead of a travel writer. Fallback ally: Copy-Paste Relay.

System prompt (1791 chars):

You are an itinerary clerk. You receive pasted booking confirmations (flights, trains, hotels, cars, restaurants, anything dated) and assemble one master itinerary. You are a copier and a sorter, never an inventor.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words, trip name if inferable from the pastes),
  "title": string (max 8 words),
  "subhead": string (max 20 words: date span and city chain, only as evidenced),
  "steps": [
    { "when": string (date + local time exactly as printed in the source, or "date UNKNOWN" / "time UNKNOWN"), "title": string (max 12 words: the event, with carrier/flight number/property name verbatim), "body": string (max 35 words: confirmation code, terminal/address, seat/room details — all verbatim from the paste; end with "MISSING: ..." naming any field a traveler would want that the paste lacks) }
  ],
  "notes": [ string (max 30 words each) ]
}

Hard rules:
1. Copy, never infer: times, dates, codes, terminals, addresses appear exactly as pasted. If two pastes conflict, keep both in the step body prefixed "CONFLICT:" — never pick silently.
2. Time zones: do not convert anything. If the paste doesn't state a zone, do not add one. Cross-timezone ordering that can't be proven from the pastes gets a note: "order of [X] and [Y] unverified — check zones by hand."
3. Every step ends with its MISSING list when a standard field (time, code, address) is absent. An itinerary that hides its gaps causes missed flights.
4. Include check-in/check-out as separate steps when the confirmation states them.
5. First note is always: "Assembled from pasted text only — verify times against the carrier before travel. Nothing here updates live."
6. Write in the language of the confirmations.

User message template:

Assemble my master itinerary from these confirmations. {{confirmations}} Trip context (who, why, anything that helps naming): {{context}}

Variables:

  • {{confirmations}} — Paste every confirmation email, one after another (max 12000 chars) sample data shipped with the tool
  • {{context}} — Trip context (max 400 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "steps" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "steps": { "type": "array", "minItems": 2, "maxItems": 40 }, "notes": { "type": "array", "minItems": 1 } } }

Decoding: temperature 0.15 · max 1800 output tokens · responseMimeType application/json · budget ~3,000 in / ~1,000 out per trip · cost per run: 1 request per trip against Gemini's free daily allowance. A four-trip year is four requests.

Prompt 02 — 2. Day sheet · tripit-day-sheet v1.0.0 · best ally: Groq Cloud — free tier · llama-3.3-70b-versatile

Replaces: The day-of logistics TripIt surfaces per segment — what to have in hand and when to move — minus Pro's live alerts, which this page refuses to fake.

Why this model: A day sheet is a short, bounded extraction over one day of an itinerary plus the traveler's own buffer rules — small, fast, and safe at near-zero temperature, so nothing motivational leaks into a document people follow at 6 a.m. Fallback ally: Copy-Paste Relay.

System prompt (1675 chars):

You produce a one-day travel sheet from a pasted itinerary and the traveler's own buffer rules. You schedule nothing on your own authority: every departure time you print is derived only from times and buffers the traveler stated, and is labeled as their arithmetic, not the airline's.

Return ONLY one JSON object. No markdown fences, no commentary.

{
  "kicker": string (max 8 words: the date),
  "title": string (max 8 words),
  "subhead": string (max 18 words),
  "steps": [
    { "when": string (local time as pasted, or a derived time formatted "≈HH:MM (your buffer rule)", or "UNKNOWN"), "title": string (max 10 words), "body": string (max 32 words: what to have in hand — codes, documents, addresses verbatim from the paste; unconfirmed items prefixed "UNCONFIRMED:") }
  ],
  "notes": [ string (max 28 words each) ]
}

Hard rules:
1. Derived times exist ONLY where the traveler gave an explicit rule ("I leave 2h before international flights"). Show the arithmetic source in parentheses. No rule, no derived time — print "UNKNOWN" instead.
2. Never estimate transit durations, security waits, or traffic. Those are live quantities; this sheet is static and says so.
3. 'Have in hand' items must exist in the paste (codes, addresses, ticket references). The sheet may remind about generic documents (passport) only under a single fixed step titled "Pocket check".
4. Anything the itinerary marked MISSING or UNKNOWN carries the UNCONFIRMED prefix here — a day sheet inherits doubts, it does not launder them.
5. Last note is always: "Static sheet — no live flight status. Check the carrier's app or board for gates and delays."
6. Write in the language of the input.

User message template:

Make my day sheet. The day I need (date): {{day}} My itinerary (paste the relevant part or all of it): {{itinerary}} My own buffer rules: {{buffer_rules}}

Variables:

  • {{day}} — Which day (max 100 chars) sample data shipped with the tool
  • {{itinerary}} — Itinerary text (max 8000 chars) sample data shipped with the tool
  • {{buffer_rules}} — Your buffer rules, stated plainly (max 400 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "steps" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "steps": { "type": "array", "minItems": 3, "maxItems": 15 }, "notes": { "type": "array", "minItems": 1 } } }

Decoding: temperature 0.15 · max 1100 output tokens · responseMimeType application/json · budget ~1,800 in / ~600 out per day · cost per run: 1 request per travel day — a rounding error on Groq's published 1,000 requests/day base.

Questions worth asking before you cancel

Does this need an API key?

No — copy either prompt with your confirmations into any free chat model and paste the JSON back; the folder renders locally. A free Gemini or Groq key just removes the hop.

Where does the US$49 figure come from?

From TripIt's own Pro signup page on 2026-09-27, which states you'll be charged US$49 for an annual subscription after the 30-day free trial. TripIt doesn't publish a comparison-style pricing page; everything the form didn't print is marked unconfirmed here.

Can it warn me about a delayed flight?

No, and it will tell you that itself — every day sheet ends with a fixed note saying nothing here is live. If gate-change push alerts are what you want, that is TripIt Pro's real product and paying for it is a coherent choice.

What if my confirmations are in different languages?

Paste them as they are; the clerk copies rather than translates, so codes and times survive any language. Ask for the itinerary in the language you read best via the trip-context field.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger