{{ summaryTitle }} {{ summaryValue }} {{ summaryLine }} {{ badge.label }} {{ badge.value }} {{ summaryAnnouncement }}
Schengen stay history and proposed trip inputs
Enter only Schengen short-stay presence. Exclude residence-permit and long-stay-visa periods.
Auto detect reports the resolved format in the result ledger; pin a format when pasted text is ambiguous.
Choose a starting point; editing any loaded value switches the scenario to Custom.
Use the date of a border check or the date on which you want a historical audit.
A same-day entry and exit counts as one day. Clear both dates for a history-only audit.
Entry
Keep 90 days for the ordinary Schengen short-stay rule.
days
Turn this off to keep all result artifacts focused on completed and ongoing historical stays.
{{ include_proposed ? 'Included' : 'Excluded' }}
{{ workflowFeedback }}
Complete histories are unchanged by this setting.
ISO is compact and unambiguous; long and day/month/year formats are reading aids.
The compact setting keeps long travel histories easier to scan.
{{ controlExportStatus }}
MeasureValueMeaningCopy
{{ row.label }}{{ row.value }}{{ row.context }}
{{ staysExportStatus }}
SourceEntryExitDaysControl windowCopy
{{ row.source }}{{ row.entry }}{{ row.exit }}{{ row.days }}{{ row.window_days }}
{{ plannerExportStatus }}
CheckpointResultInterpretationCopy
{{ row.label }}{{ row.value }}{{ row.context }}
{{ chartExportStatus }}

Schengen short stays are limited by a moving window, not by a fixed half-year block. For each day a traveler is present, the previous 180 calendar days are examined and the total short-stay presence must not exceed the applicable allowance. Under the ordinary rule, that allowance is 90 days.

Both the day of entry and the day of exit count. A same-day visit therefore uses one day, and a stay from 1 January through 10 January uses ten. Days do not reset on 1 January, after leaving for a weekend, or 180 days after the first entry. Older days leave the window one by one as the reference date advances.

Which periods belong in an ordinary Schengen short-stay count
PeriodOrdinary treatmentReason to verify
Visa-exempt or short-stay presenceCount entry through exit inclusivelyA visa sticker may authorize fewer than 90 days
Overlapping or touching stay recordsCount each calendar day onceDuplicate records should not consume the same day twice
Residence-permit or long-stay-visa periodExclude from this short-stay ledgerDifferent legal rules apply
Special national or bilateral entitlementNot resolved by the ordinary combined countConfirm with the competent border or immigration authority

A compliant arithmetic result is not permission to enter. Passport validity, visa conditions, purpose of travel, Entry/Exit System records, national rules, and decisions by border authorities can still control the trip. Keep documentary evidence and check official guidance before relying on a planned date.

How to Use This Tool:

Build a complete short-stay history first, then test the date on which you need a border or planning decision.

  1. Enter one stay range per line in Stay history, or paste signed passport stamps such as +010124 -100124. Exclude residence-permit and long-stay-visa periods.
  2. Choose Auto detect, Date ranges, or Passport stamps. Pin the format when pasted text could be read more than one way, and correct any unpaired entry, missing exit, or reversed date.
  3. Set the Control date. Add both proposed dates when testing a trip; a proposed exit may equal the entry date, but it cannot be earlier.
  4. Keep the Standard 90 days cap for the ordinary rule. Use a custom cap only as a conservative what-if limit, then review the Control ledger, Reentry plan, and Rolling limit.

Interpreting Results:

Used days counts historical presence in the 180-day window ending on the control date. Remaining days is the active cap minus that count, never below zero. A proposal marked as fitting is checked as a continuous stay from its entry date, not simply compared with the control-date remainder.

Latest safe exit is the last continuous proposed-stay day allowed by the entered history and cap. Peak used days scans every included stay day, and Over-limit days counts included days on which the moving total is greater than the cap. Exactly 90 days is within the standard limit; the 91st counted day is over it.

Check the resolved input format, stay rows, duplicate-day warning, and proposed-trip setting before trusting a date. Then compare the plan with the European Commission calculator or guidance from the competent authority, especially when permits, visas, bilateral arrangements, or incomplete stamps are involved.

Technical Details:

The calculation uses Gregorian calendar-day indexes rather than elapsed hours or local time zones. Every closed stay becomes an inclusive integer range. Overlapping and immediately touching ranges are merged so a calendar day is counted once.

Rule and Formula Core

For a reference day t, the moving window begins at t − 179 and ends at t. Let I(d) equal 1 when day d is inside a merged stay and 0 otherwise. The rolling use U(t) is:

U(t)= d=t179t I(d)

Under the standard profile, a stay day is compliant when U(t) ≤ 90 and over limit when U(t) > 90. Proposed duration is exit index minus entry index plus one. A continuous proposal is extended day by day until adding the next day would push the rolling total above the selected cap.

Schengen input and date-handling rules
RuleExact behavior
Date rangesAccepts year-month-day with hyphens or slashes, and day/month/year with dots or slashes.
Passport stamps+DDMMYY opens a stay and -DDMMYY closes it; suffixes 70 to 99 map to 1970 to 1999 and 00 to 69 map to 2000 to 2069.
Missing exitEither rejects the record or closes an ongoing stay on the control date, with a warning.
OverlapDuplicate presence days are merged and reported rather than counted twice.
Custom capAccepts a whole number from 1 through 90 and is labeled as a local what-if threshold.

The earliest one-day entry and full-allowance date are found by testing future dates, up to 730 days after the control date. The next release date is the first day within the following 180 days when the historical window count falls below its control-date value.

The control-date count always uses historical stays. When Proposed-trip analysis is enabled, the proposal is also included in peak, over-limit, stay-row, and chart analysis. Turning it off leaves those outputs focused on historical presence.

Limitations and Privacy:

This is an informational date model, not legal advice or a border decision. It applies one combined short-stay ledger and cannot determine which legal regime, exemption, visa sticker, residence status, or national arrangement governs a traveler.

  • The arithmetic does not verify passport stamps, official Entry/Exit System records, territorial coverage, or permission to enter.
  • An open stay closed at the control date is an assumption and should be replaced with the actual exit date when known.
  • Travel history is processed in the browser, but entered dates may appear in shared links or exported files. Review them before sharing.

Worked Examples:

The day after a continuous 90-day stay

A stay from 1 January through 31 March 2026 contains exactly 90 days. On 31 March the standard count is compliant with zero days remaining. A proposed same-day visit on 1 April would raise the moving total to 91, so it does not fit; the first January day leaves the 180-day window on 30 June, allowing one day then under this history.

References: