Ninety

Every short-stay calculator tells you how many days you have used. None of them tell you the day you went over. Ninety computes your allowance day by day, names the exact date it breaks, and hands you the smallest edit that prevents it.

A year of hops, including two that quietly do not count.

Used, as of Sun 4 Oct 2026

72 / 90

Left to spend

18

You cross the limit here

On 26 October 2026 the rolling 180-day window reaches 91 days. It is Barcelona — booked that puts you over.

You crossed the limit on 2026-10-26. Leaving Spain on 2026-10-26, rather than staying through 2026-10-27, brings you back to 90 or fewer.

Your last permissible day is 25 October 2026. After that, the next 180 days cannot absorb the trip you have booked.

1 day could not be settled without a person. The number above is the count with those days excluded.

The ledger — every day, and why

Sun 25 Oct 2026 — the last day this itinerary keeps you legal.

  • counted
  • outside the area
  • not present
  • needs a ruling
  • over the limit

Mon 26 Oct 2026

counted against you

Spain · Barcelona — booked

You entered the territory and were admitted as a short-stay visitor. The day counts.

Sources

  • Schengen areaEuropean Commission, Directorate-General for Migration and Home Affairs · read 2026-10-03
  • Schengen visa policyEuropean Commission, Directorate-General for Migration and Home Affairs · read 2026-10-03

Where the days went

TripWhereDatesDaysCost you
LisbonPortugal03-12 → 03-2520261414
Seville day tripSpain04-06 → 04-09202644
Canary IslandsCanary Islands (Spain)04-14 → 04-252026120free
DublinIreland04-30 → 05-07202680free
PragueCzechia05-14 → 05-2820261515
ViennaAustria06-05 → 06-1820261414
AmsterdamNetherlands06-26 → 07-1320261818
StockholmSweden07-18 → 07-2920261212
Lake ComoItaly08-06 → 08-1620261111
Paris layoverFrance09-10 → 09-10202610free
Barcelona — bookedSpain10-06 → 10-2720262222

This table counts every charged day in your history — 110 in total. Only days inside the current 180-day window count toward the limit; older ones have already aged out, which is why this number is larger than the one at the top of the page.

3 trips cost you nothing: Canary Islands, Dublin, Paris layover. That is not a bookkeeping error — those days never entered the counter.

Run your own history

Territories

AT BE BG CH CY CZ DE DK EE ES XCI FI XFI FR XFR GB GR HR HU IE IS IT LT LV MT NL NO XNO PL PT XPM RO SE SI SK TR

Or just describe the trip

Sanity Context → TypeSafe → engine

The agent reads your words against the corpus to work out which place and which kind of visit this is, then the engine counts the days. It shows its confidence, and it will not answer when it is unsure.

The desk — where sources disagree

When the corpus genuinely conflicts, Ninety refuses to classify the day and reports a range instead. A person rules once; the ruling is written as precedent, and every later calculation reads it.

Does a layover that clears border control count as a day in the area?

Two official sources disagree. Ninety will not choose for you.

open
  • Admission at the border is entry into the territory, so the day counts.

    if you accept this → the day counts

  • The rule is framed around "staying" in the area; a same-day transit is not a stay.

    if you accept this → the day does not count

How it works

No model in the loop

The verdict is computed. A deterministic engine resolves the membership, visa regime, permit and presence rules that apply on each individual day, then counts a rolling window. The same history always gives the same answer, and you can check it by hand.

Structure, not retrieval

Whether a day counts depends on territory membership on that date and by which mode of arrival, on your nationality class, and on your permit. That answer is not in any single document — it is the result of a join, which is why keyword search cannot produce it.

It refuses rather than guesses

An uncovered passport, an unknown permit or an undecided day produces a visible refusal, not a plausible number. A confident wrong answer here costs someone money.