About Holiday Mashup
Holiday Mashup merges the public holidays of any number of countries into a single calendar, so a team spread across borders can see at a glance which days some — or all — of them are away.
If you work with people in more than one country, the awkward questions are always the same. Is anyone off next Thursday? Which week in December is a write-off for everyone? Is there an hour tomorrow when all four of us are actually at our desks? Answering those normally means opening several calendars and doing arithmetic. This does it in one view.
It runs entirely in your browser. There is no account, no signup, and nothing to install — pick your countries and the calendar is there.
How overlapping days are counted
Every day in the calendar shows how many of your selected countries are off. Pick
three countries and a day where two of them have a holiday gets a 2/3
chip. Turn on Shared days only and the calendar narrows to just the
days two or more countries have in common, which is usually the thing you actually
wanted to know.
A day is only marked ALL when every holiday on it is nationwide. This distinction matters more than it first looks. A regional holiday means part of that country is working normally, so calling the day a full closure would be wrong — and it would be wrong in the direction that gets a meeting scheduled into a day half your colleagues are away. When the data says a holiday is regional, the calendar says so too.
Meeting windows across time zones
The other half of the distributed-team problem isn't holidays at all: it's that a perfectly free day still has no hour where everyone is awake. The meeting view works out which hours fall inside working time in every selected country simultaneously, resolving each country's offset on the date you're looking at — so daylight saving is handled rather than approximated.
Sometimes there is no such hour. "No hour works for all four" is a real answer to a real question, so it's reported as one, along with how close the best candidate got.
Three ways to look at a year
- Month — a full grid with each country's holidays colour-coded, and a click on any day for the detail: country, the holiday's English and local name, and whether it's national or regional.
- Year — all twelve months at once, shaded by how many countries are off each day. This is the view for spotting the clusters, and it prints to a single A4 landscape sheet in ink rather than colour, with the shared dates listed underneath.
- Agenda — the same holidays as a chronological list, when you want to read rather than scan.
Sharing a mashup
Every change is mirrored into the address bar, so a link always reproduces exactly what you were looking at. Copy the URL and the person you send it to sees the same countries, year, view and filters.
| Parameter | Meaning |
|---|---|
c | Comma-separated ISO country codes |
y | Year (1970–2100) |
m | Month, in month view |
v | month, year, agenda or meet |
shared | 1 when the shared-days filter is on |
embed | 1 for chrome-free rendering in an iframe |
A shared link wins over your own saved setup for that visit only — opening someone else's mashup doesn't overwrite yours. Unknown country codes, out-of-range years and unrecognised views fall back to the defaults instead of erroring.
Adding embed=1 strips the surrounding chrome, which makes the calendar
reasonable to drop into a team wiki or dashboard in an iframe.
Exporting to your own calendar
The merged year downloads as a standard .ics file that Google Calendar,
Outlook and Apple Calendar all import. It exports whatever is currently on screen, so
if the shared-days filter is on you get only the days your countries have in common
rather than several hundred entries you don't need.
Where the holiday data comes from
Public holidays come from Nager.Date, a free and open public-holiday API covering around 100 countries. Your browser calls it directly. Holiday data is a genuinely messy domain — countries move observances, declare one-off days, and disagree with themselves about regional scope — so if a date looks wrong, Nager.Date is the place it can be checked and corrected at source.
Privacy
There are no accounts and no advertising or analytics trackers. Your country
selection, view, filter and theme are kept in your browser's localStorage
so the app remembers you between visits; clearing your site data removes them. The
visit counters in the footer are a keyless public counter service that only ever
increments a number — no profile, no identifiers.
Accessibility
The calendar is a proper ARIA grid with full keyboard navigation — arrow keys between days, PageUp and PageDown between months, Enter to open a day's details. Dialogs trap focus and return it where it came from, changes are announced to screen readers through live regions, and both the light and dark themes meet WCAG AA contrast.
Questions
How do I find the days my whole team is off?
Select every country your team sits in, then switch on Shared days only. The calendar reduces to the days at least two countries share, and days where everyone is off are marked ALL.
Why does a day show 2/3 rather than ALL?
Either only two of your three countries have a holiday that day, or all three do but at least one of them is regional rather than nationwide — in which case part of that country is still working.
Can I add these holidays to Outlook or Google Calendar?
Yes. Export the merged year as an .ics file and import it. Whatever
filters are active carry through to the export.
Which countries are covered?
Everything Nager.Date covers — roughly 100 countries, listed in the country picker.
Does it cost anything?
No. It's free, with no account and no signup.