Booking confirmation parser
A booking confirmation parser reads confirmation emails from hotels, airlines, venues and scheduling tools and returns the confirmation code, guest, dates, times, location and amount as typed JSON. ParsedMail sends that JSON by webhook or API to your calendar, travel management, property or expense system, so nobody retypes itineraries.
Email received
Fields described as
booking type (hotel, flight, venue, appointment), confirmation code, guest name, property or provider, check-in date, check-out date, number of guests, room type, total price, cancellation deadline
JSON delivered to your webhook
{ "booking_type": "hotel", 0.99 "confirmation_code": "HV-77K2Q", 0.99 "guest_name": "Ms. Alvarez", 0.88 "provider": "Harborview Hotel Seattle", 0.97 "check_in_date": "2026-11-02", 0.98 "check_out_date": "2026-11-05", 0.98 "guests": 2, 0.96 "room_type": "King Deluxe, city view", 0.95 "total_price": { "amount": 759.47, "currency": "USD" }, 0.98 "cancellation_deadline": "2026-10-31T18:00:00-07:00" 0.86 }
Why booking emails are hard to automate
Confirmation emails look simple and are full of traps. Dates are written as "Mon, Nov 2", "02/11/2026" or "2 November". Times may be local to the hotel or the departure airport. A flight confirmation can hold four segments, a hotel email can mix nightly rate, taxes and the total, and an appointment reminder may repeat the original booking further down the thread. Template parsers break as soon as a chain changes its email design, and every airline, hotel group and scheduling tool has its own.
ParsedMail reads the meaning of the email against your schema, so the same fields come back from a boutique hotel, a large airline or a dental clinic reminder.
Typed dates, times and money
Booking data is mostly dates and amounts, so types do most of the work:
- date fields return
YYYY-MM-DD, so check-in and check-out can be compared without parsing strings - datetime fields return ISO 8601 with the offset when the email states a local time, which is what calendars and reminders need
- money fields return the amount and the currency, useful when a trip mixes USD, EUR and GBP bookings
- enum fields, such as booking type with options hotel, flight, venue and appointment, make routing simple
- table fields hold flight segments, each row with flight number, departure airport, arrival airport, departure time and arrival time
Values that are not in the email stay null. A hotel email without a cancellation policy returns no deadline rather than a guess.
Where booking data usually goes
- Calendars. A Zapier or Make step creates an event in Google Calendar or Outlook from the dates and location.
- Travel management and duty of care. Companies collect bookings that employees made outside the corporate tool, so they know who is where. The webhook feeds the travel system or a shared itinerary sheet.
- Property and venue systems. Hotels and venues that receive bookings from agencies and channel partners by email create the reservation in their property management system.
- Expenses. The total and currency become a pending expense line, matched later with the card transaction.
Webhook setup for each automation tool is on the integrations page. If you would rather keep a simple log, the email to spreadsheet setup appends each booking as a row.
One inbox for hotels, flights and appointments
On Growth and Scale, one inbox can hold several schemas, for example a hotel schema, a flight schema with a segments table and an appointment schema. Classification picks one per email and returns classification with the schema name and a confidence score. An email that fits none of them goes to the review queue instead of being forced into the wrong shape. On Starter, use one inbox per booking type, with up to 5 inboxes on the plan.
Changes, cancellations and attachments
- Changed bookings. Include a status field with options confirmed, changed and cancelled. Your automation then updates or deletes the calendar event that matches the confirmation code.
- ICS and PDF attachments. Calendar invites (ICS) and PDF itineraries are read as text and merged with the body. Scanned PDFs and images are read on paid plans.
- Repeated reminders. A reminder resent with the same Message-ID, or with the same sender, subject and body within 30 days, is marked
duplicateand not charged. - Forwarded by travelers. Forwarded emails often carry the traveler signature and a few lines of comment. The parser ignores signatures and quoted text and reads the confirmation itself.
For PDF heavy confirmations, see the page on attachments and PDF parsing. Shipping confirmations, which share the same tracking style problems, have their own page about the shipping notification parser.
Frequently asked questions
Can it parse flight confirmations with several segments?
How are time zones handled?
Does it read calendar invite attachments?
Can travelers forward confirmations from their personal email?
Which plan fits a small travel desk?
Related
See your own email as JSON
Paste one into the demo, describe the fields and look at the result. No account needed.