Skip to content
ParsedMail

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.

Travel coordinator checking a hotel reservation on a laptop

Email received

From: Reservations <[email protected]> Subject: Your reservation is confirmed, HV-77K2Q Dear Ms. Alvarez, Thank you for choosing Harborview Hotel Seattle. Confirmation number: HV-77K2Q Arrival: Mon, Nov 2, 2026 (check-in from 3:00 PM) Departure: Thu, Nov 5, 2026 Guests: 2 adults Room: King Deluxe, city view Rate: $219.00 per night x 3 nights Taxes and fees: $102.47 Total: $759.47 Free cancellation until Oct 31, 2026, 6:00 PM local time. We look forward to welcoming you.

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 duplicate and 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?

Yes. Describe the segments as a table, and each flight becomes a row with typed columns such as flight number, airports and departure and arrival times.

How are time zones handled?

Datetime fields are returned in ISO 8601. When the email states a local time and the location makes the offset clear, the offset is included. Check the confidence score for times that had to be interpreted.

Does it read calendar invite attachments?

Yes. ICS files are read as text along with PDF, CSV, HTML and other text attachments, up to 8 files per email.

Can travelers forward confirmations from their personal email?

Yes. Give them the inbox address. You can limit the inbox to company domains with allowed senders, and other senders are logged as blocked and not counted.

Which plan fits a small travel desk?

Starter at $49 a month covers 1,000 emails and 5 inboxes. Growth adds classification, so one inbox can take hotels, flights and appointments, plus the review queue.

Related

See your own email as JSON

Paste one into the demo, describe the fields and look at the result. No account needed.