Free tool
Log every trip into Schengen, see your rolling 90-day balance, and run a planned trip through the math before you book. Your data lives in your browser only.
Window: 0NaN-NaN-NaN to 0NaN-NaN-NaN (180 days, inclusive)
Enter a start and end date. We'll check every day of the trip against the 90/180 window, treating it as if it were already booked.
Trips are stored locally in your browser. Nothing is sent anywhere. Clearing site data will wipe them.
The short-stay rule is one sentence, and that sentence trips up almost every traveller who hears it. Non-EU passport holders can spend a maximum of 90 days inside the Schengen area within any 180-day window. The window is rolling, not a calendar. It is not "90 days per year", it is not "90 days per visit", and it is not reset by leaving and coming back. On any day you cross a Schengen border inbound, the question the officer's screen asks is the same: how many days has this person been here in the last 180 calendar days, including today? If the answer is over 90, the stamp gets a red margin around it.
The arithmetic is simpler than the explanation. Pick any day. Count back 180 calendar days. Add up the days you were physically inside Schengen during that span. Both your entry day and your exit day count as full days of presence, per Article 6 of the Schengen Borders Code, even if you flew in at 11 PM and out at 1 AM. That is the number this calculator tracks for you, and that is the number a border officer will calculate when you next enter.
A common surprise: travellers compare their last entry stamp to the counter and assume the stamp is the source of truth. It is not. The stamp records a single crossing. The 90/180 calculation aggregates every stay across every member state. If you spent 60 days in Spain in January, flew home, then took 35 days in Italy in May, your stamp from Italy will say "fine" while the rolling window will say "five days over". Border systems share data through SIS and the new Entry/Exit System, so the discrepancy surfaces on the next entry, not on the exit that put you over.
The other quiet trap is the day-count convention. The day of arrival counts as a full day even if you cleared passport control after midnight. The day of departure counts as a full day even if your flight leaves at 6 AM. A "two-week trip" from a Saturday arrival to the second Saturday departure is fifteen days under EU counting, not fourteen. Multiply that across a year and the slippage gets serious.
The planner panel above takes a proposed entry and exit date, then walks every day of the trip through the rolling-window math as if it were already booked. The day-by-day chart shows the running total: each square is one day of the proposed trip, and the number on top is how many days you would have used in the 180-day window ending that day. If any square turns red, that is the day the trip pushes you over 90. If the verdict is red, the calculator also tells you the earliest start date at which the same trip length would fit cleanly — useful when you have flexibility on travel dates but not on duration.
If you live abroad and shuttle in and out of Schengen, the iCal export is the piece most people want. Hit "Export iCal" and you get a `.ics` file with one all-day event per trip, plus a single reminder event on your earliest safe re-entry date if you are currently over-quota. Import it into Google Calendar, Apple Calendar, or Outlook and future-you gets a nudge on the day you can safely cross the border again. If you also need to convert local hotel times to your home timezone, the time zone converter handles that side cleanly.