Business· Help center

Help center › Rentals

How to run short-term rentals

Read stays from each listing's Airbnb or VRBO calendar, get a turnover cleaning for every checkout, import payouts and see occupancy, ADR and RevPAR.

Updated 2026-10-18

For a unit you let by the night, Rentals reads the stays from the listing's own calendar, books a turnover cleaning for every checkout, and works out what each unit made. Start by adding the unit with Let set to Short-term (see how to add units and leases), and set its Default cleaner: turnover jobs are assigned to them.

Connect a listing's calendar

  1. On Airbnb, VRBO or Booking.com, copy the listing's calendar export link. It starts with https:// and usually ends in .ics.
  2. In Otto, open the unit. Under Calendar links, paste the link and press Add.
The Calendar links box with a listing's calendar link pasted in
The Calendar links box with a listing's calendar link pasted in

Add stays grayed out until the link starts with https://. A unit takes up to 5 calendar links, one for each place it is listed.

Otto reads each link every few hours on its own. To read one now, press Sync now; Otto says how many stays are new, moved and cancelled. A link that is working shows its platform in green; one that failed shows in red with the reason beside it. Remove takes the link away; the stays it brought stay as history.

Only the dates and the line the calendar gives each booking are kept. Dates the host has blocked are not stays.

Turnover cleanings

Every stay with a checkout still to come gets one job, Turnover — (unit name), on the checkout day at 11:00 for three hours, assigned to the unit's Default cleaner. If you keep a checklist template called Turnover, it is put on every turnover job.

  • If the guest's dates change, the turnover moves with the checkout.
  • If the stay is cancelled, the turnover is cancelled too.
  • Once a turnover is in progress, a change of dates no longer moves it.
  • A stay never gets two turnovers.

The unit's Upcoming stays and turnovers and the Stays tab (the next 60 days, every unit) list each stay with its nights, where it was booked and its turnover's state. The Stays this week and Turnovers this week figures sit at the top of Rentals.

Import payouts

  1. Download your payouts as a CSV. For Airbnb: Earnings → Transaction history → Download CSV. VRBO payout reports work when their columns are named.
  2. Open the Money tab. Under Import payouts, choose the file.
  3. Otto shows how many rows it read, any columns it did not read, and any row it could not read.
  4. For each listing name in the file, pick the unit it belongs to. Otto remembers the choice for next time.
  5. Press Import.

Importing the same file twice does not count anything twice. Guest names are never kept. An amount Otto cannot read is left empty and said, never guessed. Rows from a listing with no unit picked show as rows without a unit.

See what each unit made

The Money tab shows the chosen month, the Profit across your units, and a row for each unit.

Per unit: revenue, costs, profit, occupancy, ADR and RevPAR for the month
Per unit: revenue, costs, profit, occupancy, ADR and RevPAR for the month
  • Revenue is what the platform paid out for stays that month (for a long-term unit, the rent received).
  • Costs add up the rent you pay the landlord, the expenses you tag to the unit under Tag expenses to a unit, and the cost of its turnover cleanings.
  • Occupancy is the nights booked out of the nights in the month. Booked nights come from the calendar link, or from the payouts when the unit has no link.
  • ADR (average daily rate) is the revenue divided by the nights booked.
  • RevPAR (revenue per available night) is the revenue divided by the nights in the month.

A figure Otto cannot know yet shows as "—", never as 0. The unit's own page shows this month's figures and lists what is not known yet.

If it doesn't work

  • "Paste the calendar's export link: it starts with https://."
  • "Calendar links are for short-term units." — edit the unit and set Let to Short-term.
  • "That calendar was read in the last 5 minutes. Try again shortly."
  • "… answered with an error (…). The link may have been reset on the listing." — copy the export link again from the listing and add it in place of the old one.
  • "That link did not answer with a calendar." — check you copied the calendar export link, not the listing's page.
  • "That does not look like a payout export: it needs a Date column and an amount column." — download the transaction history CSV, not a summary.
  • "Pick one of your units for “…”." — choose a unit for every listing before pressing Import.