Setting up a holiday calendar by hand is one of those small admin chores that eats an afternoon: you’re typing dates one at a time, second-guessing which ones your business actually observes, and hoping you didn’t fat-finger a date into the wrong month. The good news is you almost never need to do that anymore. If you want to import holidays into a WordPress HR plugin, there are three faster ways to do it — and a decent tool previews everything before it saves a single row.
This is a plain walkthrough of those three methods, when to use each, and how to avoid the two mistakes that create duplicate or wrong entries. The examples use Punchwell, but the approach transfers to any capable HR plugin.
Why a shared holiday calendar is worth setting up
A holiday calendar isn’t just decoration. Once your HR plugin knows which days are company holidays, it can do useful things automatically: show staff what’s coming, keep those dates out of the way of leave requests, and — if you run holiday pay — feed the days that qualify into your payroll math. In Punchwell, holidays live alongside the leave and PTO tools, so the calendar you import here is the same one that shapes time-off and pay downstream. That’s why it’s worth getting the list right once, up front.
The catch is that holidays vary by country, region, and even by business. A US retailer and a UK clinic observe different days, and two shops in the same town might close on different ones. So the goal isn’t “import every holiday that exists” — it’s “import the ones you actually observe, quickly, without typos.”
Method 1: Start from a country preset
The fastest path is a built-in country preset. Punchwell ships presets for common countries — US, UK, Canada, Australia, and more — so instead of typing dates, you pick your country and the standard public holidays populate for you.
Two details make this genuinely convenient rather than just a starting point:
- It’s computed locally. The dates are worked out on your own server — no call to an outside service, nothing about your business leaving your site. For a privacy-minded shop that’s a small but real reassurance: importing a holiday list doesn’t phone anyone.
- You edit before you commit. A preset is a draft, not a mandate. You’ll almost always want to remove a day your business works through, or add a local one the preset doesn’t know about. Do that in the preview (below) before saving.
Use a preset when your calendar is close to the national standard — which, for most SMBs, it is.
Note: the exact preset country list can change between releases, so confirm the countries shown in your version before relying on a specific one.
Method 2: Upload an iCal (.ics) file
If you already keep holidays in a calendar app — Google Calendar, Outlook, Apple Calendar, or a regional holiday calendar you subscribe to — you can export it as an iCal (.ics) file and upload that. The plugin reads the events and turns them into holiday entries.
This is the method to reach for when:
- Your official holiday list lives in a shared calendar that someone already maintains.
- You observe a regional or religious calendar that a generic country preset won’t capture.
- You want the same source of truth in your calendar app and your HR plugin.
Export the .ics from wherever the calendar lives, then upload it — the dates come across without retyping.
Method 3: Paste a list
The third option is the most flexible: paste a list of holidays directly. If you have your dates in a spreadsheet, an email from head office, or a document from last year, you can paste them in and let the plugin parse them into entries.
Paste is the pragmatic choice when your holidays don’t come from a tidy calendar file — which is often the reality at a small business, where “the holiday list” is a paragraph in an email. It saves you from clicking through a date picker dozens of times.
The step that saves you: preview before you save
Whichever method you use, the part that actually prevents a messy calendar is the preview. Punchwell shows you the proposed entries before anything is written, with each row marked so you can see what will happen:
- New — a holiday that isn’t in your calendar yet and will be added.
- Duplicate — a date you already have; these are skipped automatically, so importing twice doesn’t double up your calendar.
- Invalid — a row it couldn’t read (a malformed date, say), flagged so you can fix or drop it rather than importing garbage.
This is what makes importing safe to do more than once. Run a preset, review, save. Later, upload an .ics for the regional days you missed — the preview will mark the overlaps as duplicates and skip them, so you only ever add what’s genuinely new. No fear of turning one calendar into three.
A simple, repeatable process
Put together, here’s the whole job:
- Pick your method. Preset if you’re close to the national standard;
.icsif you already keep a calendar; paste if your list is loose text. - Import into the preview. Nothing is saved yet.
- Read the New / Duplicate / Invalid labels. Drop the days you don’t observe, add any local ones, fix invalid rows.
- Save. Only the rows you approved get written.
- Top up later as needed — re-importing is safe because duplicates are skipped.
Done once, your team sees the right days off, your leave requests route around them, and your holiday-pay calculations have the dates they need — without you hand-typing a calendar ever again.
Set it up on your own site
Importing public holidays is a five-minute job when the tool does the tedious part and shows you a preview before it commits. If you’d like to see how the holiday calendar connects to leave, time off, and the rest of the suite, start with the product overview and the leave and PTO feature page.
Punchwell is a self-hosted WordPress time clock and HR suite by Sturdyhaus. Its one-click holiday import — country presets, iCal upload, or paste — is computed locally on your own server, with a preview before anything is saved.