DEV Community

Ayoub El Haddad
Ayoub El Haddad

Posted on

Airbnb shows 12 months of availability. Past five months, most of it isn't bookings.

Airbnb publishes a full year of forward calendar on every listing. Which nights are free,
minimum stay, maximum stay, one entry per night, public on every property.

It is the only forward-looking signal in short-term rentals that anyone can read, and if
you take it at face value it will tell you something false.

On 2 September 2026 I pulled 365 nights of calendar for 2,218 listings across ten cities:
Paris, London, Barcelona, Rome, Amsterdam, Berlin, Lisbon, New York, Tokyo and Sydney.
809,570 listing-nights.

Here is the trap.

What is Airbnb forward availability?

Forward availability is the share of future nights a listing is not accepting bookings
for, read from the public calendar rather than inferred from past data. It covers up to
twelve months ahead. It is a ceiling on occupancy rather than occupancy itself, because
a night a host blocked and a night a guest booked look identical from outside.

The naive read says demand rises with distance

Pooled across all ten cities, the share of nights marked unavailable:

Month Unavailable
September 2026 52.2%
October 2026 28.8%
November 2026 21.2%
December 2026 25.7%
March 2027 30.7%
June 2027 42.7%
August 2027 45.9%

Read that literally and next August is twice as committed as this November. Twelve months
out is tighter than two months out.

That cannot be true, so I went looking for what it actually was.

Nobody books a whole month

Split each listing by whether its calendar for a given month is open at all:

Month Listings with the whole month blocked Listings partially booked
October 2026 0 1,651
December 2026 323 864
February 2027 481 289
August 2027 974 185

In October, not one listing of 2,218 has its entire month blocked. By next August, 974 do,
and the partially-booked group has collapsed to 185.

The signature is the giveaway. Real bookings are scattered: a weekend here, a week there,
which shows up as partial. A wholly blocked month is not demand. It is a host who has
not opened that month yet.

The crossover lands between January and February 2027, about five months out. Past that
point, more listings have a closed month than a booked one.

The corrected curve decays, in all ten cities

Count only listings whose calendar for that month is actually open, and the inversion
disappears:

Month Raw Open calendars only
September 2026 52.2% 50.5%
October 2026 28.8% 28.8%
November 2026 21.2% 14.9%
December 2026 25.7% 13.0%
January 2027 25.7% 7.6%
February 2027 25.5% 4.8%
June 2027 42.7% 3.2%
August 2027 45.9% 3.5%

That is the shape a booking curve is supposed to have, and it holds in every one of the
ten cities individually. The raw series says the opposite in every one of the ten.

The share of listings with an open calendar is what drives it:

City Oct 2026 Aug 2027
London 100% 44%
Tokyo 100% 47%
Paris 100% 49%
Berlin 100% 59%
New York 100% 80%

If you compute occupancy from Airbnb calendars at a twelve-month horizon, roughly half
your denominator is properties that were never on sale.

Which night of the week goes first?

Pooled, inside 120 days, open calendars only:

Night Unavailable
Saturday 36.6%
Friday 32.1%
Thursday 31.8%
Wednesday 31.7%
Sunday 29.3%
Tuesday 29.2%
Monday 28.6%

Saturday first, Monday last. Unremarkable, and that is the point: when I ran this on one
city over four months I got Tuesday beating Friday and spent a while trying to explain
business travel. It was noise. Ten cities and a clean denominator make it go away.

Two things worth knowing about specific markets

Tokyo books far earlier than anywhere else. Among open calendars in October it sits at
51.0%, against a 28.8% pooled average. Three months out it is at 26.7% while Amsterdam is
at 8.3%. Whatever drives booking lead time, it is not uniform across markets.

New York is the emptiest market here. 10.4% in October, and 0.4% by April. A tenth of
Tokyo's forward commitment.

Does anything spike at New Year?

In four of the ten cities, December sits above November among open calendars:

December bump No bump
Sydney (11.9% → 16.7%), Paris (14.6% → 16.5%), New York (5.4% → 7.2%), Barcelona (6.5% → 7.8%) London, Rome, Amsterdam, Berlin, Lisbon, Tokyo

Sydney's is the largest, which fits: it is peak summer there and the harbour fireworks are
a global draw. Three of the four are famous New Year's Eve cities, which is a tidy story
until you notice London is one too and does not bump at all. Four out of ten. I would call
it suggestive and leave it there.

What I got wrong first

I ran this on Paris alone, four months forward, before any of the above. That version had
a headline finding: the booking curve reverses around three months out.

It does not. Four months forward stops exactly where the closed-calendar artifact starts
biting, so I measured the artifact and explained it as New Year demand. The December
effect is real in Paris, but it is a small part of what I was pointing at, and it does not
generalise. A single city and a short window produced a confident, wrong answer.

Two changes fixed it: reading twelve months instead of four, which costs the same single
request per listing, and separating closed calendars from booked ones.

What this does not tell you

The calendar says a night is unavailable. It never says why. Among open calendars a
blocked night could still be an owner's own stay rather than a guest's booking, so every
number here is a ceiling on occupancy, not occupancy.

What makes them useful anyway is that the ceiling is measured identically across 2,218
listings on the same dates from the same source. The shape holds even where the level is
soft.

One snapshot, ten cities, one day. Enough to kill a methodological error. Not enough to
price a portfolio on.

Run it on your own market

Everything above came from one run per city of an Airbnb scraper I maintain.
217 listings for Paris took 97 seconds. Twelve months of calendar costs the same single
request per listing as one month, so there is no reason to ask for less.

import pandas as pd
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("datapipe/airbnb-scraper").call(run_input={
    "locationQueries": ["Paris, France"],
    "maxListings": 250,
    "calendarMonths": 12,
    "includeReviews": False,
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())

nights = pd.DataFrame([
    {"id": r["id"], "date": e["date"], "available": e["available"]}
    for r in rows if r.get("availability") for e in r["availability"]
])
nights["month"] = pd.to_datetime(nights.date).dt.to_period("M")

# a listing-month is "open" unless every night in it is blocked
blocked = nights.groupby(["id", "month"]).available.apply(lambda s: (~s.astype(bool)).mean())
open_only = blocked[blocked < 1.0]

print(pd.DataFrame({
    "raw": blocked.groupby("month").mean(),
    "open_only": open_only.groupby("month").mean(),
    "open_share": (blocked < 1.0).groupby("month").mean(),
}).round(3))
Enter fullscreen mode Exit fullscreen mode

If your market's raw and corrected columns agree, I would like to see it. In ten cities
they never did.

FAQ

How far in advance do Airbnb guests book?
Pooled across ten cities in September 2026, 50.5% of nights in the current month were
unavailable, falling to 14.9% two months out and under 8% beyond four months, counting
only listings with open calendars. Most booking happens inside 90 days.

Can you see Airbnb availability in advance?
Yes. Airbnb publishes up to twelve months of forward calendar on every listing page, one
entry per night, with minimum and maximum stay length.

Is Airbnb calendar data the same as occupancy?
No, and the gap is larger than most people assume. Beyond about five months out, more
listings have a wholly unopened calendar than a partially booked one, so calendar-derived
occupancy at long horizons mostly measures whether hosts have opened their calendars.

How far ahead can you trust Airbnb calendar data?
About four to five months in these ten cities. Inside that window, blocked nights are
scattered and behave like bookings. Past it, whole-month blocks dominate and the raw
series inverts.


2,218 listings across 10 cities, 809,570 listing-nights, collected 2 September 2026,
covering 1 September 2026 to 31 August 2027. Every figure recomputed from the raw runs
before publishing. Last updated: 2 September 2026.

Top comments (0)