Skip to main content
← Back to all guidance

How the ComplyEur Schengen calculator works

See the date rules, country treatment and verified boundary scenarios used by the ComplyEur 90/180-day calculator, including its limits.

By James Walsh, Founder, ComplyEur

Published
07 September 2026
Updated
07 September 2026
Reading time
6 min read

The result should be inspectable rather than mysterious. These are the rules, examples and limits behind the calculation.

The calculation in plain English

For every date being checked, ComplyEur looks back over a 180-day period that includes that date. It counts each calendar day of qualifying Schengen presence once. The result is compliant when the total is 90 or fewer and a breach when it reaches 91.

Arrival and departure both count as full presence days. A same-day visit uses one day. Overlapping trip records do not count the same calendar day twice. There is no annual reset: an old presence day stops affecting the answer only when it moves outside the relevant rolling window.

The calculator performs date-only arithmetic. It does not use arrival times, departure times or the viewer's time zone, because those facts do not turn an arrival or departure date into a partial day under the published rule.

The rule implemented

The Schengen Borders Code defines a short stay as no more than 90 days in any 180-day period. It states that the date of entry is the first day of stay and the date of exit is the last. The European Commission's official short-stay calculator applies the same moving-window approach.

For a date D, the calculation is:

  1. Set the window start to D minus 179 calendar days.
  2. Gather qualifying presence dates from the window start through D, inclusive.
  3. Remove duplicates caused by overlapping records.
  4. Count the unique dates.
  5. Compare that count with the 90-day limit.

For a proposed journey, the calculation repeats for every date from entry through exit. Checking only the proposed arrival is insufficient: a traveller can enter at 89 days and pass the limit during the stay.

Country treatment

The shared allowance covers the 29 formal Schengen countries. Ireland and Cyprus are European Union members but are outside this common short-stay calculation. The country guide lists the included and commonly confused destinations.

Bulgaria and Romania entered the Schengen calculation on 31 March 2024, when internal air and sea border controls were removed. Land-border controls were removed later, on 1 January 2025. A historical calculation must therefore count qualifying days in Bulgaria or Romania from 31 March 2024 rather than waiting until 2025.

Andorra is not a formal Schengen member and is treated as outside the common allowance. Transit through France or Spain still creates Schengen presence on the relevant dates and must be recorded separately.

Monaco, San Marino and Vatican City are not formal members either. ComplyEur currently uses a conservative operational assumption for journeys recorded to those destinations because travellers normally reach them through neighbouring Schengen countries without routine immigration control. A result involving one of these microstates needs manual review of the actual route and evidence; the calculator is not a legal determination of the person's status there.

Verified boundary scenarios

These examples make the behaviour testable without trusting a summary number.

ScenarioTrips enteredExpected result
Same-day meetingFrance, 10 March 2026 to 10 March 20261 presence day
Arrival and departureGermany, 10–12 March 20263 presence days
Overlapping recordsSpain, 1–5 April; Spain, 3–7 April7 unique days, not 10
Exact limitNetherlands, 5 January–4 April 202690 days on 4 April; no breach yet
First breachThe same stay continues to 5 April91 days on 5 April; breach by 1 day
Romania before accessionRomania, 20–24 March 20240 days in the common calculation
Romania across accessionRomania, 29 March–2 April 20243 days: 31 March, 1 April and 2 April
Outside SchengenIreland, 1–10 May 20260 Schengen days

The exact-limit example is a useful check against an off-by-one error. From 5 January through 4 April 2026 there are 90 calendar days. The traveller becomes non-compliant on 5 April, not 4 April.

A rolling-window scenario

Suppose a traveller is present for 30 days in January, 30 in March and 30 in May 2026. They leave on 30 May with 90 days used.

On 29 June, 1 January remains inside the relevant window, so no day is available. On 30 June, 1 January has moved outside it. If the traveller enters that day, the newly used day replaces the old one and the total remains 90.

This can continue while January dates leave the window one at a time. It does not mean the allowance has reset. Another cluster of old dates can stop the trip later, which is why the guide to when Schengen days reset recommends testing the whole proposed stay.

What the calculator needs from you

The arithmetic is deterministic, but the answer is only as complete as the travel entered. Include:

  • business and personal Schengen presence;
  • arrival and departure dates;
  • trips booked or approved for the forecast period;
  • transit days that involved entry into Schengen; and
  • corrected actual dates after travel.

Do not omit a holiday because the next trip is for work. The allowance belongs to the traveller and combines both purposes. If your records disagree with passport evidence or an official border record, investigate the difference rather than choosing the more convenient total.

What the result does not decide

ComplyEur calculates ordinary short-stay day use from supplied travel. It does not decide:

  • whether an activity is permitted as a business visit;
  • whether a visa, work permit or notification is required;
  • how a residence permit or long-stay visa affects a particular stay;
  • whether a bilateral arrangement applies;
  • whether an authority will admit a traveller; or
  • whether an EES record is complete or correct.

Those questions depend on the traveller's documents, nationality, activity and destination-country rules. Use the arithmetic as one part of a wider pre-trip compliance checklist and obtain qualified advice for unusual status or work-permission questions.

How the scenarios are checked

The product's calculation engine uses calendar-date values and has automated tests for inclusive endpoints, same-day journeys, rolling boundaries, overlaps, leap years, future travel and country effective dates. Published examples should be checked against the engine and the European Commission calculator where the official tool supports the scenario.

The two calculators may still appear to disagree when their inputs differ. Common causes are a missing personal trip, an entry or exit date excluded by mistake, a non-Schengen destination treated as Schengen, or a proposed stay entered in only one tool. Compare the underlying dates before treating the difference as a calculation fault.

Sources and review date

Sources last checked: 2026-09-07.

This methodology explains the product's calculation policy. It is not legal or immigration advice, and a result does not grant entry or permission to work.

Check your dates with the free calculator or read the complete 90/180-day guide.

About the author

James Walsh

Founder, ComplyEur

Founder of ComplyEur. Built the deterministic 90/180-day calculation engine behind the product.

Put the guidance into practice

Review ComplyEur options or speak with the team about your travel process.