Why an Evolve calendar hides same-day turnovers

Evolve's calendar export merges consecutive bookings into one continuous block, so a same-day turnover looks like a single long stay. Here is how to spot it, and how to schedule cleanings around it.

Logan Busicevolveicalstr-cleaningturnovers

Short answer: Evolve's calendar export can merge two back-to-back reservations into one continuous block. The property is correctly shown as occupied, but the checkout in the middle vanishes, and that checkout was your cleaning. Same-day turnovers are the only bookings affected, and they are the ones you can least afford to miss.

If you clean for an owner who lists through Evolve, you may have hit this without knowing what you were looking at: the host swears there was a turnover on Saturday, and your schedule shows the property occupied straight through the weekend.

What Evolve actually hands you

Evolve does not use the word "iCal" in the owner dashboard. The option is presented as syncing the calendar to Google, Apple, or Outlook. The link behind that option is an ordinary .ics feed, which is what every cleaning automation tool reads.

That naming gap is worth knowing on its own, because when you ask a host for "your iCal link" they may tell you Evolve does not have one. It does. Ask for the calendar sync link instead.

The merge

A normal calendar feed publishes one event per reservation:

Guest A   Mar 14 -> Mar 18
Guest B   Mar 18 -> Mar 22

Two events, and the shared boundary on Mar 18 is the turnover. That is the cleaning.

A merged feed publishes availability instead:

Busy      Mar 14 -> Mar 22

One event. The property really is occupied for that whole span, so nothing here is a lie. But the checkout on Mar 18 is gone, and there is no way to recover it from the feed alone. Any tool reading that calendar, ours included, sees one stay and schedules one cleaning at the end of it.

The bookings that survive intact are the ones with a gap:

Guest A   Mar 14 -> Mar 18
Guest B   Mar 20 -> Mar 24

Those stay as two events, because the vacant night on Mar 18-19 breaks the block. This is why the problem is invisible until it bites: most of the calendar looks perfect, and only the tightest turnarounds go missing.

How to check a feed in about a minute

  1. Open the owner's Evolve dashboard and pick any week with two reservations close together.
  2. Open the calendar you (or your tool) subscribed to, for the same week.
  3. Count the events.

If the dashboard shows two reservations and the subscription shows one block, you have a merged feed. Do this once per owner when you onboard them, not once per property, since the behaviour follows the account.

What to do about it

There is no toggle. The realistic options, in order of how well they hold up:

Ask for a channel-manager feed if one exists. If the owner also runs the listing through a property manager or a channel manager, that feed usually exports reservations individually. One aggregate link from a channel manager is generally better than separate per-platform links anyway, because it does not merge and it covers every booking source in one URL.

Get turnover dates confirmed for merged blocks. For any block longer than a typical stay, ask the host to confirm whether there is a checkout inside it. This is manual, and it only works if the host is responsive, but it is reliable.

Do not try to infer turnovers from the block length. A seven-night block might be one guest on a long stay or two guests back to back. Guessing produces either phantom cleanings you do not get paid for or missed ones you get blamed for. Neither is better than asking.

Why this matters more than it looks

Same-day turnovers are the cleanings with the least slack. A missed weekly clean is an annoyance. A missed same-day turnover means a guest walks into the previous guest's sheets, and the person who gets the review is the host, and the person who gets the call is you.

If you are pricing STR work, it is also the cleaning you most likely charge a premium for. Losing them silently costs more than the schedule gap suggests.

Where to go next

If you run turnovers in Jobber, CleanSync reads the calendar feed and creates the cleaning jobs automatically, including the checkout-time and cancellation handling that trips up a plain calendar subscription. It cannot un-merge an Evolve block, because the information is genuinely not in the feed, but it will tell you which feeds it could read and which properties produced no bookings, which is usually how this gets caught in the first place.

For the mechanics of feeds generally, see how to sync Airbnb bookings into Jobber.

Frequently asked

Does Evolve provide an iCal feed?
Yes, but it is not labelled 'iCal' anywhere in the owner dashboard. Evolve presents it as syncing your calendar to Google, Apple, or Outlook. The URL behind that option is a standard .ics feed, and it is the same link any cleaning automation tool needs.
Why does my Evolve calendar show one long booking instead of two?
When one guest checks out on the same day the next guest checks in, Evolve's export can merge the two reservations into a single continuous busy block. The calendar is technically accurate about the property being occupied, but the checkout in the middle disappears, and that checkout is the cleaning.
Which cleanings does this cause me to miss?
Same-day turnovers specifically, which are the highest-urgency cleanings you have. Back-to-back stays separated by a gap of one or more nights still appear as two separate events and are unaffected.
How do I tell whether my feed is affected?
Compare a week in the Evolve owner dashboard against the same week in the calendar you subscribed to. If the dashboard lists two reservations and the subscribed calendar shows one unbroken block, the merge is happening.
What is the fix?
There is no owner-side setting that turns merging off. The practical options are to have the host confirm turnover dates directly for any merged block, or to use a channel-level feed (a property manager or channel manager feed) that exports reservations individually rather than as availability blocks.