# Nager.Date API

> Nager.Date returns public holidays, long weekends, and country information as a workflow and API.

Nager.Date lists a country’s public holidays by year or for the next 365 days, using a country name or two-letter code. Check public holidays with a date and country, optionally adding a region; results include applicable holidays and weekend status. List long weekends by country and year, or get country names, codes, world region, and land-border neighbours by country.

- Page: https://fous.com/tools/nager-date
- Handle: `@nager-date`
- Category: [Productivity](https://fous.com/tools/category/productivity)
- Source website: https://date.nager.at
- Last verified: Oct 7, 2026

## Methods

### Check public holiday

Operation `check_public_holiday`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check whether a date is a public holiday or weekend in a country. By default, only nationwide holidays count; provide a region to include holidays observed there.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `date` | string | yes | `"2026-07-14"` | Date to check in YYYY-MM-DD format, for example 2026-07-14. |
| `region` | string | no | `"Bavaria"` | Optional state or province name or subdivision code, for example Bavaria or DE-BY. Omit to check nationwide holidays only. |
| `country` | string | yes | `"France"` | Country name or two-letter country code, for example France or FR. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country",
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "Date to check in YYYY-MM-DD format, for example 2026-07-14.",
      "examples": [
        "2026-07-14",
        "2026-01-06",
        "2026-07-12"
      ]
    },
    "region": {
      "type": "string",
      "default": "",
      "description": "Optional state or province name or subdivision code, for example Bavaria or DE-BY. Omit to check nationwide holidays only.",
      "examples": [
        "Bavaria",
        "Berlin"
      ]
    },
    "country": {
      "type": "string",
      "description": "Country name or two-letter country code, for example France or FR.",
      "examples": [
        "France",
        "Germany",
        "DE"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "date": "2026-07-14",
      "country": "France"
    },
    {
      "date": "2026-01-06",
      "region": "Bavaria",
      "country": "Germany"
    },
    {
      "date": "2026-01-06",
      "country": "Germany"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `date` | string | `"2026-07-14"` | Date checked. |
| `region` | string or null | `"Bavaria"` | Region checked, or null for nationwide only. |
| `country` | string | `"France"` | Country name. |
| `weekday` | string | `"Tuesday"` | Day of the week. |
| `holidays` | array |  | Applicable public holidays on the date; empty if none. |
| `holidays[].regions` | array |  | Regions where a regional holiday applies; empty for nationwide holidays. |
| `holidays[].page_link` | string | `"https://date.nager.at/PublicHoliday/France/2026"` | Page for the country’s holiday calendar. |
| `holidays[].local_name` | string | `"Fête nationale"` | Holiday name in the local language. |
| `holidays[].nationwide` | boolean | `true` | Whether the holiday applies nationwide. |
| `holidays[].english_name` | string | `"Bastille Day"` | Holiday name in English. |
| `holidays[].region_codes` | array |  | Official subdivision codes for applicable regions. |
| `is_weekend` | boolean | `false` | Whether the date falls on Saturday or Sunday. |
| `is_public_holiday` | boolean | `true` | Whether the date has an applicable public holiday. |

**Example input**

```json
{
  "date": "2026-07-14",
  "country": "France"
}
```

**Example output**

```json
{
  "date": "2026-07-14",
  "region": null,
  "country": "France",
  "weekday": "Tuesday",
  "holidays": [
    {
      "regions": [],
      "page_link": "https://date.nager.at/PublicHoliday/France/2026",
      "local_name": "Fête nationale",
      "nationwide": true,
      "english_name": "Bastille Day",
      "region_codes": []
    }
  ],
  "is_weekend": false,
  "is_public_holiday": true
}
```

### Get country info

Operation `get_country_info`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a country’s common and official names, code, region, and neighbouring countries. Neighbours are geographic land borders where available.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"US"` | Country name or two-letter country code, for example Austria or AT. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter country code, for example Austria or AT.",
      "examples": [
        "US",
        "Austria"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "US"
    },
    {
      "country": "Austria"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `region` | string | `"Americas"` | World region. |
| `page_url` | string | `"https://date.nager.at/api/v3/CountryInfo/US"` | Link to this country’s details. |
| `neighbours` | array |  | Countries sharing a land border with this country. |
| `neighbours[].page_url` | string | `"https://date.nager.at/api/v3/CountryInfo/CA"` | Link to the neighbouring country’s details. |
| `neighbours[].common_name` | string | `"Canada"` | Common country name. |
| `neighbours[].country_code` | string | `"CA"` | Two-letter country code. |
| `neighbours[].official_name` | string | `"Canada"` | Official country name. |
| `common_name` | string | `"United States"` | Common country name. |
| `country_code` | string | `"US"` | Two-letter country code. |
| `official_name` | string | `"United States of America"` | Official country name. |

**Example input**

```json
{
  "country": "US"
}
```

**Example output**

```json
{
  "region": "Americas",
  "page_url": "https://date.nager.at/api/v3/CountryInfo/US",
  "neighbours": [
    {
      "page_url": "https://date.nager.at/api/v3/CountryInfo/CA",
      "common_name": "Canada",
      "country_code": "CA",
      "official_name": "Canada"
    },
    {
      "page_url": "https://date.nager.at/api/v3/CountryInfo/MX",
      "common_name": "Mexico",
      "country_code": "MX",
      "official_name": "United Mexican States"
    }
  ],
  "common_name": "United States",
  "country_code": "US",
  "official_name": "United States of America"
}
```

### List long weekends

Operation `list_long_weekends`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List long weekends for a country and year, including dates, length, and any bridge days needed. Country coverage varies.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2025` | Calendar year, for example 2026. Defaults to the current year when omitted. |
| `country` | string | yes | `"US"` | Country name or 2-letter code, for example Netherlands or NL. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 9999,
      "minimum": 1,
      "description": "Calendar year, for example 2026. Defaults to the current year when omitted.",
      "examples": [
        2025,
        2026
      ]
    },
    "country": {
      "type": "string",
      "description": "Country name or 2-letter code, for example Netherlands or NL.",
      "examples": [
        "US",
        "Netherlands"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "year": 2025,
      "country": "US"
    },
    {
      "year": 2026,
      "country": "Netherlands"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `year` | integer | `2025` | Calendar year. |
| `country` | string | `"United States"` | Country name. |
| `long_weekends` | array |  | Long weekends in date order. |
| `long_weekends[].days_off` | integer | `3` | Total consecutive days off, including any bridge day. |
| `long_weekends[].end_date` | string | `"2025-01-20"` | Last date of the long weekend. |
| `long_weekends[].page_link` | string | `"https://date.nager.at/publicholiday/united-states/2025"` | Country calendar page for this long weekend. |
| `long_weekends[].start_date` | string | `"2025-01-18"` | First date of the long weekend. |
| `long_weekends[].bridge_day_dates` | array |  | Days to take off work to make the long weekend. |
| `long_weekends[].bridge_day_needed` | string | `"no"` | Whether taking a day off work is needed. |

**Example input**

```json
{
  "year": 2025,
  "country": "US"
}
```

**Example output**

```json
{
  "year": 2025,
  "country": "United States",
  "long_weekends": [
    {
      "days_off": 3,
      "end_date": "2025-01-20",
      "page_link": "https://date.nager.at/publicholiday/united-states/2025",
      "start_date": "2025-01-18",
      "bridge_day_dates": [],
      "bridge_day_needed": "no"
    },
    {
      "days_off": 3,
      "end_date": "2025-02-17",
      "page_link": "https://date.nager.at/publicholiday/united-states/2025",
      "start_date": "2025-02-15",
      "bridge_day_dates": [],
      "bridge_day_needed": "no"
    },
    {
      "days_off": 3,
      "end_date": "2025-05-26",
      "page_link": "https://date.nager.at/publicholiday/united-states/2025",
      "start_date": "2025-05-24",
      "bridge_day_dates": [],
      "bridge_day_needed": "no"
    }
  ]
}
```

### List public holidays

Operation `list_public_holidays`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List a country’s public holidays for a year, including local names, regional coverage, and holiday types. Coverage varies by country.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2026` | Calendar year, for example 2026. Defaults to the current year. |
| `country` | string | yes | `"Germany"` | Country name or two-letter country code, for example Germany or DE. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 9999,
      "minimum": 1,
      "description": "Calendar year, for example 2026. Defaults to the current year.",
      "examples": [
        2026
      ]
    },
    "country": {
      "type": "string",
      "description": "Country name or two-letter country code, for example Germany or DE.",
      "examples": [
        "Germany",
        "US"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "year": 2026,
      "country": "Germany"
    },
    {
      "country": "US"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `year` | integer | `2026` | Calendar year returned. |
| `holidays` | array |  | Holidays in date order. Nationwide holidays have no specific regions. |
| `holidays[].date` | string | `"2026-01-01"` | Holiday date. |
| `holidays[].type` | string | `"Public"` | Holiday classifications, including all applicable types. |
| `holidays[].regions` | array |  | Region names where a regional holiday applies. |
| `holidays[].weekday` | string | `"Thursday"` | Day of the week. |
| `holidays[].page_url` | string | `"https://date.nager.at/PublicHoliday/Country/DE/2026"` | Country holiday calendar page for this year. |
| `holidays[].local_name` | string | `"Neujahr"` | Local holiday name. |
| `holidays[].nationwide` | string | `"yes"` | Whether the holiday applies throughout the country. |
| `holidays[].english_name` | string | `"New Year's Day"` | English holiday name. |
| `holidays[].region_codes` | array |  | ISO region codes where this regional holiday applies. |
| `country_name` | string | `"Germany"` | Name of the country. |

**Example input**

```json
{
  "year": 2026,
  "country": "Germany"
}
```

**Example output**

```json
{
  "year": 2026,
  "holidays": [
    {
      "date": "2026-01-01",
      "type": "Public",
      "regions": [],
      "weekday": "Thursday",
      "page_url": "https://date.nager.at/PublicHoliday/Country/DE/2026",
      "local_name": "Neujahr",
      "nationwide": "yes",
      "english_name": "New Year's Day",
      "region_codes": []
    },
    {
      "date": "2026-01-06",
      "type": "Public",
      "regions": [
        "Baden-Württemberg",
        "Bavaria",
        "Saxony-Anhalt"
      ],
      "weekday": "Tuesday",
      "page_url": "https://date.nager.at/PublicHoliday/Country/DE/2026",
      "local_name": "Heilige Drei Könige",
      "nationwide": "no",
      "english_name": "Epiphany",
      "region_codes": [
        "DE-BW",
        "DE-BY",
        "DE-ST"
      ]
    },
    {
      "date": "2026-03-08",
      "type": "Public",
      "regions": [
        "Berlin",
        "Mecklenburg-Vorpommern"
      ],
      "weekday": "Sunday",
      "page_url": "https://date.nager.at/PublicHoliday/Country/DE/2026",
      "local_name": "Internationaler Frauentag",
      "nationwide": "no",
      "english_name": "International Women's Day",
      "region_codes": [
        "DE-BE",
        "DE-MV"
      ]
    }
  ],
  "country_name": "Germany"
}
```

### List upcoming holidays

Operation `list_upcoming_holidays`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List a country’s public holidays from today through the next 365 days, with English and local names and applicable regions. Includes up to 50 holidays.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"United Kingdom"` | Country name or two-letter country code, for example United Kingdom or GB. |
| `max_results` | integer | no | `3` | Maximum number of upcoming holidays, for example 10 (up to 50). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter country code, for example United Kingdom or GB.",
      "examples": [
        "United Kingdom",
        "GB",
        "United States"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of upcoming holidays, for example 10 (up to 50).",
      "x-fous-developer": true,
      "examples": [
        3,
        50
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "United Kingdom"
    },
    {
      "country": "GB",
      "max_results": 3
    },
    {
      "country": "United States",
      "max_results": 50
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `holidays` | array |  | Public holidays in date order. |
| `holidays[].date` | string | `"2026-11-30"` |  |
| `holidays[].regions` | string | `"Scotland"` | Applicable region names, or All regions for nationwide holidays. |
| `holidays[].weekday` | string | `"Monday"` |  |
| `holidays[].page_url` | string | `"https://date.nager.at/publicholiday/country/GB/2026"` |  |
| `holidays[].local_name` | string or null | `"Saint Andrew's Day"` |  |
| `holidays[].nationwide` | string | `"no"` |  |
| `holidays[].english_name` | string | `"Saint Andrew's Day"` |  |
| `holidays[].region_codes` | array |  | Subdivision codes for regional holidays; empty for nationwide holidays. |
| `holidays[].days_from_today` | integer | `63` |  |
| `country_name` | string | `"United Kingdom"` | Name of the country. |

**Example input**

```json
{
  "country": "United Kingdom"
}
```

**Example output**

```json
{
  "holidays": [
    {
      "date": "2026-11-30",
      "regions": "Scotland",
      "weekday": "Monday",
      "page_url": "https://date.nager.at/publicholiday/country/GB/2026",
      "local_name": "Saint Andrew's Day",
      "nationwide": "no",
      "english_name": "Saint Andrew's Day",
      "region_codes": [
        "GB-SCT"
      ],
      "days_from_today": 63
    },
    {
      "date": "2026-12-25",
      "regions": "All regions",
      "weekday": "Friday",
      "page_url": "https://date.nager.at/publicholiday/country/GB/2026",
      "local_name": "Christmas Day",
      "nationwide": "yes",
      "english_name": "Christmas Day",
      "region_codes": [],
      "days_from_today": 88
    },
    {
      "date": "2026-12-28",
      "regions": "All regions",
      "weekday": "Monday",
      "page_url": "https://date.nager.at/publicholiday/country/GB/2026",
      "local_name": "Boxing Day",
      "nationwide": "yes",
      "english_name": "St. Stephen's Day",
      "region_codes": [],
      "days_from_today": 91
    }
  ],
  "country_name": "United Kingdom"
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@nager-date",
  "visibility": "public",
  "operation": "check_public_holiday",
  "version": 1,
  "input": {
    "date": "2026-07-14",
    "country": "France"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@nager-date\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_public_holiday\",\n  \"version\": 1,\n  \"input\": {\n    \"date\": \"2026-07-14\",\n    \"country\": \"France\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@nager-date",
  "visibility": "public",
  "operation": "check_public_holiday",
  "version": 1,
  "input": {
    "date": "2026-07-14",
    "country": "France"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/nager-date`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_public_holiday`: Check public holiday. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_country_info`: Get country info. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_long_weekends`: List long weekends. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_public_holidays`: List public holidays. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_upcoming_holidays`: List upcoming holidays. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-nager-date https://api.fous.com/mcp/tools/nager-date --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Plan staffing around public holidays and regional observances
- Find upcoming holidays for a country
- Check whether a date is a holiday or weekend
- Identify long weekends and days to take off
- Look up country codes and neighbouring countries

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Nager.Date tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Nager.Date account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from date.nager.at when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Oct 7, 2026.

### What public holidays fall in a country this year?

Use List public holidays with a country and year. The year defaults to the current year.

### Is a date a public holiday or weekend?

Use Check public holiday with a date and country. Add a region to include regional holidays.

### When are the long weekends in a country?

Use List long weekends with a country and year. The year defaults to the current year.

## Related

- [All Productivity tools](https://fous.com/tools/category/productivity)
