Can I import my past Airbnb bookings into Xero?

Short answer

Yes, but not in one step and usually not all of them. The risk with any bulk import is hundreds of draft invoices in Xero, dated today, for stays from earlier years. Airflow avoids that by keeping two decisions apart. First, past bookings come in from a CSV file, a Google Sheet or your Airbnb calendar link as blocked dates, which raise no invoice. Then you choose which of them become real bookings with draft invoices: normally stays in your current open period and future bookings. You see what the batch will cost before it runs, and you review every draft in Xero. Years your accountant has already filed are usually best left as they are.

Read the safe order for importing booking history into Xero →

Last checked 5 October 2026 · Read as markdown

Why a straight import goes wrong

Software that links bookings to accounts looks for bookings with a value and no invoice, and raises a draft for each. That is right for new bookings. Import 200 old stays by the same route and you get 200 draft invoices dated today, landing in the current period, distorting this month's revenue and possibly crossing a VAT period or a closed year. Deleting them by hand in Xero is an afternoon.

The sources also know different things. A calendar link carries dates, not prices. Airbnb's calendar events include a confirmation code, which lets a booking be matched exactly; Booking.com's say only that the dates are not available. The guest and the money come from your own spreadsheet.

Dates are the dangerous field. 05/01/2026 is 5 January in most of the world and 1 May in the United States, and a wrong guess blocks the wrong week without any error.

How to do it with Airflow

  1. 1

    Connect Xero and prove it on one booking

    Connect your Xero organisation, then send the one test booking Airflow asks for. It raises a real draft invoice, reports the invoice number and currency back to you, and is then voided. This is required once per accounting connection before any batch can run, and it shows a currency mismatch before there is anything to clean up.

  2. 2

    Bring your history in as blocked dates

    Paste your Airbnb calendar link, which Airflow reads every hour, and upload your CSV or Google Sheet. Every row becomes a blocked date and nothing more: no booking, no invoice, no guest email, and no automated tasks used. If the date order in a file cannot be proved either way, Airflow refuses the file and asks you.

  3. 3

    Choose which bookings become records

    Turning a block into a booking is a separate step with a preview. Convert the stays that belong in your books and leave the rest as blocks.

  4. 4

    See the cost, then send

    Before a batch goes to Xero, Airflow shows how many automated tasks it needs and how many you have. If you are short, the whole batch is refused and nothing is half-done. The invoices then arrive in Xero as drafts for you to check and approve.

Two years of history, sorted

A host with 200 past and upcoming stays in a spreadsheet. Illustrative numbers.

Rows imported as blocked dates 200, with no invoices raised
Stays in years already filed, left as blocks 141
Paid stays in the current open period, converted 47
Future bookings, converted 12
Draft invoices queued for Xero 59

The 59 drafts are the 47 current stays and the 12 future bookings. The other 141 never touch the books.

Which bookings to leave out

If your accountant has filed a year, your Xero figures for it are correct as filed. Recreating those stays as invoices now does not improve the record; it changes a period that was signed off, and reconciling the difference takes longer than the import saved. Stays in the current open period are worth importing properly, and future bookings should come in, because they have not been invoiced anywhere yet.

What a backfilled invoice should look like

Create it as you would have wanted it at the time. The guest total is your revenue and the Airbnb host fee is an expense; the payout is not the income. A refundable damage deposit is a liability until it is released. Check the date as well: an invoice dated on the stay says when the income was earned, and one dated on the day of the import does not. Look at the date on each draft for a past stay before you approve it.

Other ways to do this

Airflow is one option. These are the others, and when each is the better choice.

Leave the history where it is
Often the right answer. Keep the old spreadsheet as your record, import only your calendar so sold dates are protected, and let bookings from now on flow in automatically.
Enter the open period by hand
If only a few stays fall in your current period, typing them into Xero yourself is quick and you control every date and line.
Ask your bookkeeper
A bookkeeper can decide which periods are safe to touch and post the missing months, working from your spreadsheet and your Airbnb earnings report.

What Airflow does not do

  • A calendar link carries dates, not prices. It protects your calendar; it cannot produce an invoice without the amounts from your own records.
  • Airflow does not know which years your accountant has filed. Which bookings to convert is your decision.
  • Invoices are created as drafts. Airflow does not approve, send or file them.
  • The bulk import is recent and has had little use on hosts' own long, untidy spreadsheets. Read the preview carefully before you convert anything.

Common questions

Will importing my Airbnb calendar create invoices?

No. Every route in, whether a calendar link, a CSV or a Google Sheet, creates blocked dates only. Invoices are raised only for bookings you choose to convert. Every booking you already have, in one place →

Should I import years that are already filed?

Usually not. Those figures are correct as filed, and new invoices would change a closed period. Import the current open period and future bookings. Import Airbnb booking history into Xero →

What does the import cost?

Bringing bookings in as blocked dates uses no automated tasks. Each draft invoice you then send to Xero does, and the number is shown before the batch starts. A card is needed at sign-up; current prices and allowances are on the pricing page. Know what the import will cost before it runs →

What if I do not have enough automated tasks for the whole batch?

The batch is refused whole and your books stay exactly as they were. You can switch on overage so the extra tasks are billed as used, or move up a plan, and run it again. Know what the import will cost before it runs →

Try it on your own bookings

Forward a few booking emails and look at what Airflow builds from them. A card is needed at sign-up.

Start with Airflow See plans and pricing
Share on WhatsApp Share