Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Look up public holidays for any country and year with zero API keys — the Nager.Date API via curl, with long-weekend detection and cross-country planning. Use when asked what are the holidays in a country, is date X a holiday somewhere, find long weekends this year, or which days is the team in Japan and Germany both off. Produces the holiday list with local names, the specific-date answer, long-weekend candidates, and the rerunnable command.
.claude/skills/mohitagw15856-public-holidays/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 106% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 66% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 64% | 0% |
"Is Monday a holiday in Germany?" is a five-second question that decides deploy schedules, invoice due dates, and vacation math — and Nager.Date answers it for 100+ countries over keyless HTTPS. This skill fetches, answers the actual question (a date, a plan, a long weekend), and respects the two traps: regional holidays that don't apply nationwide, and the countries whose holiday culture the API's global flag quietly encodes.
Ask for these if not provided:
curl -s "https://date.nager.at/api/v3/PublicHolidays/2026/JP" → JSON array with date, localName, name, global, counties, types. Next holidays: .../api/v3/NextPublicHolidays/DE. Specific-date check: fetch the year, match the date. Long weekends, precomputed: .../api/v3/LongWeekend/2026/DE — the API does the adjacency math itself.global flag is the regional trap: global: false + a counties array means the holiday applies only in listed regions (Bavaria's extra days, Scotland vs England). Answering "Germany has a holiday" for a Bavaria-only day is the classic wrong answer — quote the regions.types matters at the edges: most entries are Public, but some countries include Bank, School, Optional, Observance — an Observance is not a day off; filter or label by type when the question is "is the office closed."The direct answer to the actual question first.]
| Date | Holiday (local · English) | Scope | |---|---|---| Filtered to the question — the date, the range, the intersection; regional entries labeled with their regions]
Long-weekend section when planning was the intent]
Source: Nager.Date · rerun: [exact curl] Coverage caveat when workplace/regional nuance is in play]
global: false) holidays are labeled with their regions, never presented as nationaltypes are filtered or labeled when "day off" is the questionglobal flag exists to be read| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 16,939 | 16,750 | -1% | 1 | 1 | 0% | 2,525 | 2,950 | +17% | 0 | 0 | — |
case-02 | fail→fail | 18,971 | 17,951 | -5% | 1 | 1 | 0% | 3,427 | 4,157 | +21% | 0 | 0 | — |
case-03 | fail→fail | 13,707 | 8,583 | -37% | 1 | 1 | 0% | 1,610 | 2,731 | +70% | 0 | 0 | — |
case-04 | pass→pass | 11,615 | 16,036 | +38% | 1 | 1 | 0% | 1,397 | 2,877 | +106% | 0 | 0 | — |
case-05 | pass→pass | 12,567 | 12,286 | -2% | 1 | 1 | 0% | 1,463 | 2,430 | +66% | 0 | 0 | — |
case-06 | pass→pass | 13,037 | 13,711 | +5% | 1 | 1 | 0% | 1,664 | 2,733 | +64% | 0 | 0 | — |
case-07 | pass→pass | 8,733 | 14,967 | +71% | 1 | 1 | 0% | 1,412 | 2,794 | +98% | 0 | 0 | — |
case-08 | pass→pass | 15,573 | 18,055 | +16% | 1 | 1 | 0% | 2,166 | 3,301 | +52% | 0 | 0 | — |
case-09 | fail→pass | 13,780 | 17,721 | +29% | 1 | 1 | 0% | 1,628 | 2,687 | +65% | 0 | 0 | — |
case-10 | pass→pass | 9,695 | 8,830 | -9% | 1 | 1 | 0% | 1,467 | 2,550 | +74% | 0 | 0 | — |
case-11 | pass→pass | 20,599 | 20,762 | +1% | 1 | 1 | 0% | 3,501 | 3,994 | +14% | 0 | 0 | — |
case-12 | pass→pass | 9,517 | 8,906 | -6% | 1 | 1 | 0% | 934 | 1,738 | +86% | 0 | 0 | — |
case-13 | pass→pass | 13,077 | 13,175 | +1% | 1 | 1 | 0% | 1,596 | 2,145 | +34% | 0 | 0 | — |
case-14 | pass→pass | 6,002 | 11,308 | +88% | 1 | 1 | 0% | 1,100 | 2,074 | +89% | 0 | 0 | — |
case-15 | pass→pass | 20,450 | 19,151 | -6% | 1 | 1 | 0% | 3,087 | 4,253 | +38% | 0 | 0 | — |
case-16 | fail→fail | 20,093 | 16,924 | -16% | 1 | 1 | 0% | 2,455 | 3,268 | +33% | 0 | 0 | — |
case-17 | pass→pass | 16,062 | 13,664 | -15% | 1 | 1 | 0% | 1,665 | 2,332 | +40% | 0 | 0 | — |
case-18 | pass→pass | 16,705 | 6,972 | -58% | 1 | 1 | 0% | 1,682 | 2,266 | +35% | 0 | 0 | — |
case-19 | fail→pass | 9,013 | 9,300 | +3% | 1 | 1 | 0% | 732 | 1,744 | +138% | 0 | 0 | — |
case-20 | pass→pass | 21,076 | 19,507 | -7% | 1 | 1 | 0% | 2,668 | 4,052 | +52% | 0 | 0 | — |
case-21 | fail→fail | 26,226 | 26,153 | -0% | 1 | 1 | 0% | 3,190 | 4,211 | +32% | 0 | 0 | — |
case-22 | fail→fail | 17,506 | 15,794 | -10% | 1 | 1 | 0% | 2,344 | 3,038 | +30% | 0 | 0 | — |
case-23 | fail→fail | 11,530 | 23,450 | +103% | 1 | 1 | 0% | 2,111 | 4,057 | +92% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.