Import historical bookings from CSV

Prepare the file, link properties, check conflicts and review the booking import report.

Use Integrations → CSV Reservations Import to bring missing booking history into ZenHost. This one-time import creates bookings; it does not connect an Airbnb or Booking.com account.

To import only prices or availability, use Import prices and calendars from CSV.

1. Prepare the file

The properties must already exist in ZenHost. Keep your source file and prepare a .csv copy. A raw export from your previous tool may need adapting: ZenHost does not offer custom column mapping.

The first row must contain all the headers below, with exactly the same capitalization and spaces. Copy this header row:

id,rental,guest first name,guest last name,guest email,checkin,checkout,nbr adults,nbr children,channel,total price,total payments,status,guest phone number,address,city,post code,booking date,night price,city taxes,service charge,cleaning fees,commission,payment charges,other charges,guest service fee,notes,comments

When preparing rows:

  • id: the booking identifier in your source; keep it unchanged when retrying the same file.
  • rental: the property name in the file, used to select the matching ZenHost property.
  • checkin, checkout, booking date: use unambiguous dates, such as 2026-08-15, 2026-08-18 and 2026-07-01.
  • Amounts: use numbers without currency symbols, with a decimal point, such as 125.50. Check the linked property’s currency.
  • status: use cancelled for a cancelled booking. Do not translate this value: other values are treated as a booking that has not been cancelled.
  • channel: enter the original sales channel. Check the assigned channel after importing; an unrecognized value may fall under other channels.

Every header must be present, even when some cells in a column are empty. Check the essential values for each stay: property, identifier, dates, guests and amounts.

  1. Open Integrations → CSV Reservations Import and upload the file.
  2. ZenHost groups rows by their rental value.
  3. Select the corresponding ZenHost property for each selected group. Deselect groups you do not want to import.
  4. Use the arrival-date and channel filters to narrow your selection, then review the remaining rows.

Two selected groups cannot link to the same ZenHost property: combine their rows under one property name in the file or deselect the extra group.

3. Check conflicts before importing

Wait for conflict checks to finish. They compare stays with existing bookings and other selected rows, including properties linked by a dependency.

Open the reported conflicts and deselect bookings you do not want to import. Being able to continue despite a conflict does not mean it is resolved: multiple stays could occupy the same dates.

The same property and source identifier can identify an already imported booking. This does not catch every duplicate: the same stay under another identifier, or already received through a connection, needs checking.

4. Import and read the report

  1. Click the button to import the selected bookings and confirm after reviewing the checks.
  2. Let the operation finish.
  3. Read the results: created bookings, existing bookings and failures. Use Download import report to keep a copy.
  4. Open a few imported bookings and check dates, property, channel, status, amounts and recorded payments.

Only part of a file may succeed. Correct failed rows before retrying them. If the report shows a calendar synchronization failure, bookings may have been created while sales channels still show those dates as available: check the calendar and contact support.

Imported amounts describe historical records; they do not trigger a new charge. A CSV import does not establish ongoing synchronization with your previous tool.