How to sync Airbnb bookings into Jobber automatically

Stop copy-pasting Airbnb checkouts into Jobber. The free, Jobber-native way to turn iCal feeds into scheduled cleaning jobs — with the cancellations, UID rotations, and timezone gotchas covered.

CleanSyncairbnbjobbericalstr-cleaning

Short answer: Jobber doesn't ship a built-in Airbnb integration, but the App Store has third-party apps that connect a host's Airbnb iCal export to Jobber automatically. New checkouts become scheduled cleaning jobs on each sync interval; cancellations close the corresponding job. Setup is ~5 minutes per property: paste the iCal URL, pick the line item, save.

If you run cleanings for short-term rental hosts and you live in Jobber, you've probably done this dance:

  1. Host sends a screenshot of "next week's checkouts."
  2. You open Jobber, hit Quick add, retype the date, paste the address from your contacts list, set the assignee, save.
  3. Repeat eight to thirty times.
  4. Find out two days later that one of those bookings cancelled, and now you're paying a cleaner to drive to a guest who hasn't left.

There's a better way, and it's been hiding in plain sight: every major STR platform — Airbnb, Vrbo, Booking.com, Houfy, even most direct-booking sites — already publishes each rental's calendar as an iCal feed. A URL ending in .ics. That feed is the source of truth for who's leaving when. If you can read it on a schedule and turn each checkout into a Jobber job automatically, the whole copy-paste workflow disappears.

This is exactly the integration most cleaning operators don't realize Jobber will accept. Below: how the iCal flow works end-to-end, the exact setup, and the five things that go wrong if you're not careful.

What an iCal feed actually gives you

A .ics file is a plain-text calendar export. For a single Airbnb listing you'll typically see entries like:

BEGIN:VEVENT
DTSTART:20260503
DTEND:20260507
UID:abnb-1234567@airbnb.com
SUMMARY:Reserved
END:VEVENT

That's a stay from May 3 to May 7. The UID is a stable identifier — same booking, same UID, every time you re-fetch. The DTEND is the checkout date. There's no guest name, no payment info, no message thread — Airbnb deliberately strips everything except the dates so you can give the URL to a cleaner without leaking guest data.

Every Airbnb listing has its own feed URL under Listing → Availability → Sync calendars → Export calendar. Vrbo's lives under Calendar → Import & export → Export calendar. The feed URL is long, ugly, and secret — anyone with the URL can read your bookings. Treat it like a password.

For one rental that's enough information to schedule a clean. For an operator running 40 properties for 12 hosts, you need three things on top of the raw feed:

  1. A way to fetch all those URLs on a schedule (probably hourly, definitely not "when you remember")
  2. Logic that turns each new checkout into a Jobber job with the right address, line items, assignee, and cleaning window
  3. Logic that handles the messy parts — cancellations, UID rotations, timezone arithmetic, double-bookings the host accidentally created

That's the integration. The rest of this post walks through the cleanest way to wire it up.

The setup: from "no integration" to "automated" in under 10 minutes

This is the workflow CleanSync ships, but it's structurally what any iCal-based integration has to do.

1. Install the app from the Jobber Marketplace

CleanSync is free in the Jobber App Store. One-click install kicks off Jobber's standard OAuth flow — you grant the app permission to read your clients/properties and create jobs. No credit card. No trial countdown.

If you're not yet on Jobber, start a 14-day Jobber trial — once you're in, the install is a click. We're a Jobber affiliate; we earn a commission if you subscribe through that link, at no cost to you.

2. Add a rental

Inside CleanSync's app surface, Add rental opens a form that asks for four things:

  • A nickname (e.g. "Whitefish A-frame") so the cleaning job titles read like a human wrote them
  • The iCal URL from Airbnb / Vrbo / etc. You can paste multiple URLs per property if a host lists the same place on more than one platform
  • The Jobber property to attach jobs to (CleanSync queries your Jobber properties live, so this is a dropdown of real places, not free text)
  • A default cleaning window — when does the clean actually start? Most operators run "checkout day, 11:00am, 3 hours" but you can set anything per-property

Pick the line item (e.g. "STR Turnover Clean — $145"), pick the assignee, save. That's the per-property setup.

3. Wait for the next sync

A scheduled job fires every hour. On each run it fetches every iCal URL you've registered, diffs the new feed against what it synced last hour, and:

  • New checkout → creates a Jobber job titled "STR Cleaning (Airbnb) for Whitefish A-frame" with the line items + assignee + scheduled visit at your cleaning window
  • Existing checkout, same UID → no-op (idempotency wins)
  • UID dropped from the feed → flagged as missing; if it stays missing past a grace window, the matching Jobber job is closed with "Cancelled STR Cleaning for X" in the title (so the cleaner sees why it's no longer on the schedule)
  • Explicit STATUS:CANCELLED event in the feed → cancellation runs immediately, no grace window

That last bit matters more than it looks. We'll come back to it.

Five things that break if you DIY this

Most operators who try to roll their own iCal-to-Jobber automation hit at least three of these in the first month. Here's what to watch for whether you build it yourself, hire a developer, or use a tool that handles them.

1. Cancellations don't always come as STATUS:CANCELLED

Airbnb is good about emitting STATUS:CANCELLED when a host or guest cancels through the app. Vrbo... isn't. Most of the time a Vrbo cancellation just means the UID quietly disappears from the feed on the next refresh. If your integration treats every "missing UID" as a cancellation, you'll mass-cancel jobs whenever the iCal feed times out or returns a partial response.

The fix is a miss count + grace window: don't cancel until the same UID has been missing for at least N consecutive sync runs and M hours have passed. CleanSync defaults to 2 misses + 24 hours, which is what we'd recommend you target if you're rolling your own.

2. Vrbo rotates UIDs when guests change their reservation

If a Vrbo guest extends a stay by one night, Vrbo doesn't update the existing event — it deletes the old UID and creates a new one with the new dates. Naive integrations treat this as "old booking cancelled, new booking added," which means the cleaner gets a "this is cancelled" email and a "this is scheduled" email back to back for the same property on overlapping dates.

The fix: when a UID disappears AND a new UID appears for the same property with overlapping dates, treat it as a reschedule, not a cancel + create. Update the existing Jobber job in place.

3. iCal DTEND is the day after the last night

If a guest stays Friday and Saturday, DTEND is Sunday. You want the clean scheduled on Sunday, not Saturday. This is one of those iCal RFC details that everyone gets wrong on the first try and then never again.

4. Timezones lie

iCal can express dates as floating (no timezone), UTC, or local with a tz reference. Airbnb feeds usually emit floating dates ("checkout May 7") which means the host's local interpretation. If your integration runs in UTC and the host is in Hawaii, you can drift by a calendar day depending on when the cron fires.

Best practice: treat checkout dates as floating local-day dates and apply the cleaning window in the property's local time, not the server's.

5. iCal URLs expire

Airbnb regenerates the export URL if the host clicks "reset" on the sync calendar settings. Vrbo's URLs are stable but get invalidated if a host disconnects an integration. Your integration needs a way to surface "this iCal feed returned 404 for the last 6 fetches" as an error the operator can act on, not a silent dead-end.

Why "in Jobber" beats "in another tool"

You can pay $X/property/month for a tool that runs the iCal sync into its own internal calendar and lets you "send the cleaner an email." That works, but you've now got two systems of record — the cleaning calendar and the operator-facing job tracker — and they drift the moment anyone edits the wrong one.

The advantage of an iCal-to-Jobber integration over a standalone STR cleaning tool is that Jobber stays the system of record for the cleaning operations. Your invoicing, assignee schedules, time tracking, payments, customer messages — they all live where they already lived. The integration just stops you from being the human bridge between the host's calendar and Jobber's.

That also means the day a host churns, you don't lose history. The Jobber jobs stay in Jobber under their property. If you ever switch cleaning software, you take Jobber with you.

What this costs

CleanSync itself is free. Jobber pricing is whatever your existing plan is — the integration doesn't bump you up a tier. The only cost is the time to add each rental (≈90 seconds) and the time to handle the inevitable host who insists their iCal URL is the public listing URL ("this is the link to my Airbnb!"). That one's on us all.

If you're not on Jobber yet and you're evaluating, the 14-day trial is enough to install CleanSync, wire up one test rental, and see the next checkout come through as a real job. That's usually enough.

Where to go next

If you only take one thing from this: stop typing in checkouts. It's not just the time — it's the cancellations you miss, the duplicate jobs you create when you re-enter the same booking twice, and the cleaner who shows up at a still-occupied property because last week's update didn't make it from text message to Jobber.

The iCal-to-Jobber loop solves all four. Whether you use CleanSync or build it yourself, the tradeoff is one hour of setup against a week of recovered time per month. Few automations pay back that fast.

If you want the deeper-dive on the iCal protocol itself (where every booking platform diverges, the four modeling decisions that determine how brittle your automation is), read The complete guide to scheduling STR cleanings with iCal. For the cancellation policy template hosts and cleaners should both have in writing, see Handling Airbnb cancellations without losing money on cleaners. Vrbo-specific quirks (UID rotation, missing STATUS:CANCELLED events) are covered in How Vrbo iCal cleaning sync actually works.

Frequently asked

Does Jobber have an Airbnb integration?
Jobber doesn't ship a built-in Airbnb integration, but the App Store has third-party apps (CleanSync is one — free) that connect a host's Airbnb iCal export feed to Jobber. New checkouts automatically become scheduled cleaning jobs.
What is an iCal feed and why do I need one?
An iCal feed is a permanent URL that publishes a rental's calendar in a standard format every booking platform supports. Airbnb, Vrbo, Booking.com, Houfy, and most direct-booking platforms expose one per listing. The URL is how any cleaning automation tool reads bookings without needing direct platform login access.
Where do I get the Airbnb iCal URL?
In the Airbnb host dashboard, go to Listing → Availability → Sync calendars → Export calendar. Each listing has its own URL. Copy and treat it like a password — anyone with the URL can read every booking on that listing.
What happens when a guest cancels?
If Airbnb emits a STATUS:CANCELLED event in the feed, the corresponding Jobber job closes immediately. If the booking simply disappears from the feed (Vrbo's typical pattern), a miss-count + grace window prevents false cancellations from a flaky feed fetch — defaults are 2 misses + 24 hours.
Does this cost extra on top of Jobber's plan?
CleanSync itself is free. Jobber pricing is whatever your existing plan is — the integration doesn't bump you to a higher tier. The only cost is ~90 seconds per property to add the iCal URL.
How fast does a new booking show up as a Jobber job?
Within the next sync interval (default hourly). The sync job fetches every iCal URL, diffs against the last run, and creates Jobber jobs for new checkouts on the same tick.