public-holidays
GitHub查询全球公共假期,支持特定日期、跨年列表及长假周末检测。利用Nager.Date API无需密钥,提供本地名称,处理区域限制与假期类型陷阱,辅助跨国团队日程协调。
Trigger Scenarios
Install
npx skills add mohitagw15856/pm-claude-skills --skill public-holidays -g -y
SKILL.md
Frontmatter
{
"name": "public-holidays",
"homepage": "https:\/\/mohitagw15856.github.io\/pm-claude-skills\/skill\/public-holidays.html",
"metadata": {
"openclaw": {
"emoji": "🧠"
}
},
"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."
}
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
- The year list:
curl -s "https://date.nager.at/api/v3/PublicHolidays/2026/JP"→ JSON array withdate,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. - The
globalflag is the regional trap:global: false+ acountiesarray 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. typesmatters at the edges: most entries arePublic, but some countries includeBank,School,Optional,Observance— an Observance is not a day off; filter or label by type when the question is "is the office closed."- 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.
- 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
typesare 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
globalflag 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
Version History
- 54fad50 Current 2026-07-19 12:29


