Bookings
A booking is one element of a trip — a flight, a hotel night, an activity, a restaurant reservation. Moonjar stores each booking in its own typed table with the right fields for that category, so a flight has gates and terminals while a hotel has check-in dates and room types.
How it works
Section titled “How it works”Most bookings arrive by email. Forward a confirmation to your Moonjar address and the email-capture pipeline:
- Detects travel intent from the subject and body.
- Runs a Claude classifier to decide what kind of booking it is.
- Extracts the structured fields for that booking type.
- Picks the right trip — existing, or creating a new one if none fit.
- Writes the booking and links the source email as a document.
You can also create a booking by hand from the trip detail screen, or have the chat assistant add one in conversation.
Booking types
Section titled “Booking types”Each booking type has its own fields. Categories supported:
- Flight — carrier, flight number, origin and destination airports, departure / arrival, gate and terminal, status.
- Accommodation — provider, address, check-in / check-out, room.
- Ground transport — pickup / drop-off, provider, vehicle.
- Rail — operator, origin and destination stations, departure / arrival.
- Bus / coach — operator, route, departure / arrival.
- Ferry — operator, port pairs, departure / arrival.
- Cruise — line, ship, ports of call, dates.
- Activity — provider, location, date / time.
- Show — venue, performance, seating.
- Restaurant — venue, party size, time.
- Parking — facility, slot, dates.
Adding a new category requires a backend change. From a user perspective the categories are fixed.
What’s tracked across all types
Section titled “What’s tracked across all types”Common fields on every booking, regardless of type:
- Booking reference — the confirmation code.
- Provider name — who you booked through.
- Total cost and currency.
- Source email — the original confirmation, if it came in by email.
- AI confidence — how sure the classifier was when it pulled the booking out. Low-confidence bookings are flagged for review rather than silently filed.
- Notes — free text.
Live status
Section titled “Live status”Some booking types refresh themselves. Flight bookings poll a flight status provider near the departure window so the trip detail screen shows current gate, terminal, and any delay — without you opening the airline’s app.
Limits
Section titled “Limits”- Confidence isn’t perfect. A booking that arrives garbled (an old email format, a non-English confirmation, a forwarded three-times-over copy) may end up in the wrong trip or as an orphan booking awaiting your routing decision.
- Cost extraction is best-effort. If the email doesn’t list a total, Moonjar leaves it blank rather than guess.
- Live flight status depends on a configured flight-status provider. Without one, the booking shows the static data from the email and nothing more.