# Import bookings from another system

Updated 2026-10-29 by the TicketPa team. Source: https://ticketpa.com/help/import-bookings

You can import the bookings still to come from your old booking system or a spreadsheet into TicketPa with a CSV file. You see every booking before anything is added, and you can undo the import for 7 days.

## Before you start

- Create your activities in TicketPa first, with their prices. The import finds each booking's activity by its name. See [Create an activity](https://ticketpa.com/help/create-an-activity).
- You don't need a time slot for every booking. When a date and time has none, the import adds a one-off time slot for it.
- Only bookings still to come are imported, on activities with time slots. Appointments can't be imported yet, so add them with **New booking**. See [Add a booking for a guest](https://ticketpa.com/help/add-a-booking).

## Get your CSV file ready

1. Go to **Bookings** in the sidebar and select **Import**.
2. Select **Download the template** for an empty file with the column names, or start from your old system's export.
3. Check that the first row has these column names. Their order doesn't matter, and other columns are ignored.

| Column       | Needed     | What it holds                                                                                                                                |
| ------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Date         | Yes        | The day of the booking, like 2026-11-14 or 14.11.2026. In the United States, 11/14/2026 works too.                                           |
| Start        | Yes        | The start time, like 14:30 or 2:30 pm.                                                                                                       |
| Activity     | Yes        | The activity's name, as it is in TicketPa. Capital letters don't matter.                                                                     |
| Guest        | Yes        | The guest's name.                                                                                                                            |
| Email, Phone | One of two | At least one, so you can reach the guest. A phone number without a country code is read as one from your business's country.                 |
| Guests       | Yes        | How many people come.                                                                                                                        |
| Tickets      | No         | Which tickets, like "2 Adult; 1 Child", with the ticket names you use in TicketPa. Without it, every guest gets the activity's first ticket. |
| Paid         | No         | What the guest already paid you, like 25.50.                                                                                                 |
| Currency     | No         | If you add it, it must be your business's currency.                                                                                          |
| Reference    | No         | The booking number in your old system. It goes in the booking's notes for your team.                                                         |
| Notes        | No         | Notes for your team.                                                                                                                         |
| Language     | No         | The language of the guest's emails, like de or German.                                                                                       |

4. Save the file as CSV. In Excel, choose "CSV UTF-8" when you save. In Google Sheets, download it as "Comma-separated values".

One file holds up to 500 bookings and 1 MB. For more, split them into several files.

## Steps to import

1. On **Import bookings**, select **Choose a CSV file** and pick your file. The file uploads, but no bookings are added yet.
2. **Check your bookings** opens with every row of the file. A row marked **Ready** will be imported. A row marked **Not imported** says what is wrong with it.
3. Look at **New time slots**, if the page shows it. These are the dates and times with no time slot yet, which the import adds outside your schedule.
4. Tick **Email guests about these bookings** if you want TicketPa to email the guests. See [Emails to imported guests](#emails-to-imported-guests).
5. Select the import button, like **Import 42 bookings**.

The page then shows each row's new booking, or why it wasn't imported. To import the missing rows, fix them in your file and upload it again. Bookings already in TicketPa are left out the second time, so nothing is booked twice.

## What an imported booking looks like

- It is **Confirmed**, and the guest pays on arrival, at your prices in TicketPa.
- What the guest paid before shows as a payment called **Paid before TicketPa**, and **Still to pay** shows the rest. TicketPa takes no fee on it. Take the rest on the day with **Take a payment**.
- It says where it came from: **Imported**. You see it on the booking, in the bookings filter, in **Reports** and in the bookings CSV.
- The Reference and Notes columns are under **For the team** on the booking.
- If the guest booked with you before, TicketPa finds them by phone number, then by email, as when you add a booking yourself.

## Emails to imported guests

**Email guests about these bookings** is off unless you tick it.

- When it's off, guests get no ticket now, and no reminders or review requests later. Leave it off when your old system already sent them their booking details. You can still send one guest a reminder with a link to their ticket: open the menu at the end of the booking's row on **Bookings** and select **Send reminder**.
- When it's on, guests with an email address get their ticket with its QR code now, and reminders and review requests later, like any guest.

## Undo an import

For 7 days after an import, you can take its bookings out again:

1. Go to **Bookings**, select **Import** and pick the file under **Earlier files**.
2. Select **Undo import**, then **Undo import** again to confirm.

- Bookings nobody changed are deleted for good, and their places are free again.
- Bookings your team changed after the import stay, like ones checked in, moved, paid, cancelled or sent a reminder. Cancel them as usual if you need to.
- The time slots and guests the import added are deleted too, when no booking is left on them.
- Guests keep any emails they got, but their ticket links stop working.

An undo can't be undone. After 7 days, cancel the bookings one by one.

## Good to know

- Rows are checked in the order of the file. When a time slot fills up, the later rows on it show that there aren't enough places. Add places on the **Calendar** first, then upload the file again.
- A new time slot gets as many places as the activity's schedule has, or more when the bookings on it need them.
- A guest already booked on the same time slot, or twice in the file, is left out.
- Rows on a time slot you cancelled or closed, or on a closed date, aren't imported.
- If your file has a Total column, TicketPa compares it with its own price and warns you when they differ. The booking always costs your TicketPa price. A row that says the guest paid more than that isn't imported.
- The file's rows are deleted 30 days after the upload. The bookings stay.

## Frequently asked questions

### Can I import past bookings?

No. Only bookings still to come are imported. Keep your old system's export of past bookings for your records.

### Can I import appointments?

Not yet. Add them one at a time with **New booking**. See [Add a booking for a guest](https://ticketpa.com/help/add-a-booking).

### Who can import bookings?

The Owner and Managers, on every plan. Hosts can't.

### My file won't upload. What can I do?

Save it again as CSV, with commas or semicolons between the columns, and check that the first row has the column names. An Excel file (.xlsx) has to be saved as CSV first.
