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.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add mohitagw15856/pm-claude-skills --skill public-holidays --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Public Holidays?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mohitagw15856-public-holidays)More formats (shields.io, HTML) on the badges page.
---
name: public-holidays
description: "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."
homepage: https://mohitagw15856.github.io/pm-claude-skills/skill/public-holidays.html
metadata:
{
"openclaw": { "emoji": "🧠" }
}
---
# Public Holidays Skill
"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.
## What This Skill Produces
- **The answer** — is/isn't a holiday, the next one coming, or the year's list — whichever was asked
- **Local names alongside English** — 元日 reads differently than "New Year's Day," and the local name is what colleagues will say
- **Long-weekend candidates** — holidays adjacent to weekends, the planning gold
- **The command** — exact curl, rerunnable
## Required Inputs
Ask for these if not provided:
- **Country (or countries)** — ISO two-letter codes resolved from names; multi-country questions are batched, one call each
- **Year** — default the current year; "next 12 months" spans two calls
- **The real question** — a specific date, planning a trip, scheduling around a team, or hunting long weekends — the output shapes to it
## Framework: The Calls and the Traps
1. **The year list:** `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.
2. **The `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.
3. **`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."
4. **Cross-country scheduling:** fetch each country, then intersect/union per the question ("when are BOTH teams off" vs "when is ANYONE off"); present as a small table with local names.
5. **Coverage honesty:** ~110 countries; religious holidays following lunar calendars are included where official but company/regional observances (Diwali bonus days, US company holidays like day-after-Thanksgiving) may not be — say when a workplace calendar could differ from the public list.
## Output Format
# Holidays: [country/countries, year]
**[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]
## Quality Checks
- [ ] The specific question is answered before any list appears
- [ ] Regional (`global: false`) holidays are labeled with their regions, never presented as national
- [ ] Non-public `types` are filtered or labeled when "day off" is the question
- [ ] Local names appear alongside English
- [ ] Multi-country answers show the intersection/union the question implied
## Anti-Patterns
- [ ] Do not answer from memory — holiday rules change and lunar dates move; fetch or hand over the command
- [ ] Do not present a regional holiday as nationwide — the `global` flag exists to be read
- [ ] Do not count observances as days off
- [ ] Do not dump 15 holidays when the question was one date
- [ ] Do not promise a workplace is closed — public holidays and company calendars are cousins, not twins
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!