Schengen 90/180 rolling-window calculator MCP server: stay math, trip checks, rule explainer.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Evaluate Schengen 90/180 rolling-window usage for a list of trips. Returns days used in the window, days remaining, must-leave-by date, latest safe entry dates and a per-trip verdict.
Trips with inclusive entry/exit dates, format YYYY-MM-DD
Reference day; defaults to the current UTC date
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Evaluate Schengen 90/180 rolling-window usage for a list of trips. Returns days used in the window, days remaining, must-leave-by date, latest safe entry dates and a per-trip verdict.
| Argument | Type | Description |
|---|---|---|
| today | string | Reference day; defaults to the current UTC date |
| trips* | array | Trips with inclusive entry/exit dates, format YYYY-MM-DD |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"trips"
],
"properties": {
"today": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Reference day; defaults to the current UTC date"
},
"trips": {
"type": "array",
"items": {
"type": "object",
"required": [
"entry",
"exit"
],
"properties": {
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "Trips with inclusive entry/exit dates, format YYYY-MM-DD"
}
}
}Check whether ONE planned trip is legal on top of existing Schengen stays. Returns compliant/warning/over plus practical advice.
| Argument | Type | Description |
|---|---|---|
| today | string | Reference day; defaults to the current UTC date |
| planned* | object | The trip to check |
| existingTrips | array | Already planned or taken trips (inclusive dates, YYYY-MM-DD) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"planned"
],
"properties": {
"today": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Reference day; defaults to the current UTC date"
},
"planned": {
"type": "object",
"required": [
"entry",
"exit"
],
"properties": {
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"description": "The trip to check"
},
"existingTrips": {
"type": "array",
"items": {
"type": "object",
"required": [
"entry",
"exit"
],
"properties": {
"exit": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"entry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
}
},
"default": [],
"maxItems": 100,
"description": "Already planned or taken trips (inclusive dates, YYYY-MM-DD)"
}
}
}Explain the Schengen 90/180 rolling-window rule with the EC 610/2013 reference and links to the interactive calculator and guide.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}