A clear, honest explanation of the rolling 180-day window, why simple subtraction is not enough, and how our calculator models the rule — with worked examples.
The 90/180-day Rule
Article 6 of EU Regulation 2016/399 (the Schengen Borders Code) provides that third-country nationals may stay in the Schengen Area for no more than 90 days in any 180-day period. This applies cumulatively across all Schengen member states — a day in France counts the same as a day in Germany.
As of 2024, the Schengen Area consists of 27 countries: Austria, Belgium, Croatia, Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Slovakia, Slovenia, Spain, Sweden, and Switzerland.
Both entry and exit dates count. If you enter Schengen on 1 May and leave on 10 May, that counts as 10 days — not 9. The European Commission's official short-stay calculator counts inclusively.
What "Rolling Window" Means
The critical word is any 180-day period. The rule does not use fixed calendar periods like "January to June" or "the first half of the year." Instead, for any specific day you are present in Schengen, the relevant window is the 180 consecutive calendar days ending on that day.
This means the window slides forward every day — the day that dropped off the window 180 days ago is replaced by the current day. As old stays age out of the window, your allowance is effectively restored.
Visualising the rolling window
↑ D−179 (window start)↑ D (today)
For any day D, the applicable window is the 180 days from D−179 to D (inclusive). Every day, the window shifts one day forward.
Why You Can't Just Subtract Previous Trip Lengths
A common mistake is to think: "I used 30 days in the Schengen Area, so I have 60 days left." That is only accurate if all 30 of those days still fall within the rolling window at the moment you check.
If your 30-day stay was six months ago, it may be entirely or partially outside the current 180-day window — and your remaining allowance could be much higher than 60. Conversely, a recent 30-day stay that is still within the window reduces your allowance in real time.
Do not use simple subtraction. The correct approach is to count the days of all Schengen stays that fall within the 180-day window ending on each proposed day. Our calculator does this for every single day of your planned itinerary.
Worked Examples
Example 1 — Simple check, one past stay
Stay
Entry
Exit
Days
Past stay
1 Jan 2024
30 Jan 2024
30
Check date: 1 Apr 2024
The rolling window on 1 Apr 2024 covers 4 Oct 2023 → 1 Apr 2024. The 30-day January stay falls entirely within this window. Days used: 30. Days remaining: 60.
Example 2 — Old stay partially falls out of window
Stay
Entry
Exit
Days
Past stay
1 Nov 2023
31 Dec 2023
61
Check date: 1 Apr 2024
Window: 4 Oct 2023 → 1 Apr 2024. The Nov/Dec stay overlaps with the window from 1 Nov to 31 Dec = 61 days. All 61 days fall within the window. Days used: 61.
Same check on 15 May 2024 (window: 17 Nov 2023 → 15 May 2024):
Overlap with stay (1 Nov–31 Dec): 17 Nov to 31 Dec = 45 days (16 November days fall out). Days used: 45. Days remaining: 45.
Example 3 — Planned stay that approaches the limit
Stay
Entry
Exit
Days
Type
Past
1 Mar 2024
29 Apr 2024
60
Schengen
Planned
15 Jun 2024
28 Jul 2024
44
Schengen
On 15 Jun 2024 (day 1 of planned stay), window is 18 Dec 2023 → 15 Jun 2024. The Mar/Apr stay is fully within this window (60 days). Adding day 1 = 61 days total. Remaining: 29.
On 28 Jul 2024 (day 44 of planned stay), window is 30 Jan 2024 → 28 Jul 2024. The Mar/Apr stay is still fully in window (60 days). Days of planned stay so far in window: 15 Jun to 28 Jul = 44. Total: 60 + 44 = 104. Violation on day 31 (14 Jul) onwards.
This itinerary would violate the 90/180 rule from 15 Jul 2024. The planned stay should be shortened to exit by 14 Jul 2024 (30 days).
Example 4 — Days roll out of window during a planned stay
Stay
Entry
Exit
Days
Past
1 Oct 2023
30 Nov 2023
61
Planned
1 Apr 2024
30 Jun 2024
91
On 1 Apr 2024 (window start 4 Oct 2023): Oct stay contributes days from 4 Oct–30 Nov = 58 days. Adding day 1 of planned = 59. Compliant.
As the planned stay progresses, past days roll out. By 1 May 2024 (window start 3 Nov 2023): Oct stay contributes 3 Nov–30 Nov = 28 days; planned so far = 31 days; total 59. Still compliant.
By 1 Jun 2024 (window start 3 Dec 2023): Oct/Nov stay entirely outside window = 0 days. Planned days so far = 62. Remaining: 28. Still compliant on that day.
The entire 91-day planned stay remains compliant because past days roll out of the window faster than new planned days enter it. This demonstrates why a per-day rolling window check is necessary — naive subtraction would reject this itinerary incorrectly.
Long-Stay Visas and Residence Permits
A national long-stay visa (D-visa) or a residence permit issued by a Schengen member state allows stays that exceed 90 days in that issuing state. However, the rules for cross-border movement within Schengen during such stays are complex and depend on whether the permit is a uniform format residence permit.
Our calculator allows you to mark stays as "Long-stay visa" or "Residence/work permit" — these stays are excluded from the Schengen short-stay count. This reflects the general principle that authorised long stays do not consume the 90-day short-stay allowance for the purposes of that specific stay.
Long-stay visa rules vary by member state and permit type. If you hold or are applying for a D-visa or residence permit, seek professional legal advice for your specific situation. Do not rely solely on this tool.
Our Algorithm
Our calculation engine follows these documented steps and assumptions:
Parse and validate all input stays. Invalid dates, exits before entries, and overlapping stays are flagged.
Count inclusively. A stay from date A to date B covers (B − A + 1) calendar days. Both the entry and exit days count.
For each day of a proposed stay, compute the applicable 180-day window ([D − 179, D] inclusive). Count all past "schengen"-type stay days that fall within this window. Add all previously-audited proposed days within this window. Add the current day. If the total exceeds 90, flag as a violation.
Long-stay visa and permit stays are excluded from the short-stay count.
All arithmetic is done with UTC midnight timestamps in integer multiples of 86,400,000 ms, avoiding daylight-saving and timezone complications.
The result does not guarantee entry. Border authorities may apply additional conditions, and visa requirements depend on your nationality and specific circumstances.
The engine's source code is pure TypeScript with a test suite of 49 cases covering boundary dates, leap years, year boundaries, rolling-window edge cases, and invalid inputs.
Limitations and Disclaimer
This tool is not an official EU resource. Key limitations:
Does not account for visa conditions, nationality-specific exemptions, or bilateral agreements.
Cannot model enforcement practices of individual border agencies.
Does not handle temporary border controls, travel bans, or COVID-era exceptions.
A result labelled "compliant" does not guarantee entry to the Schengen Area.
We have not independently compared every result against the official EC short-stay calculator.
Always verify your situation with the official EC calculator and, if in doubt, consult your country's consulate or a qualified immigration lawyer.