Every date calculation a calendar can break
Settlement dates, invoice terms, SLA deadlines, pay runs. The arithmetic is trivial; the calendar is not. Dierum knows the holidays, weekends, and market closures of 250+ countries and regions, so your code doesn't have to.
The free tier is 100 requests a day. No card.
Where naive date math goes wrong
| You compute | Reality | Off by |
|---|---|---|
| T+2 from Thu Mar 25, 2027 → Mon | Fri Mar 26 is Good Friday. NYSE closed; most US offices open. | 1 day |
| "Due Feb 14" from net-30 terms | Feb 14, 2027 is a Sunday, and Feb 15 is Presidents' Day. | 2 days |
| Payday = last weekday of December | Dec 31, 2027 is New Year's Day, observed. Payroll runs the 30th. | 1 day |
| 5 business days, Riyadh office | Saudi Arabia's weekend is Friday and Saturday. Sunday is a workday. | 2 days |
| Dec 27 is a normal Monday in London | Christmas fell on Saturday. The UK observes Mon 27 and Tue 28 as substitutes. | 2 days |
All five are real cases from the 2027 calendar. Each one is a support ticket, a late-payment dispute, or a failed reconciliation waiting to happen.
The API
/v1/add · /v1/count
Business-day arithmetic in either direction, per region. The primitive everything else is built on.
/v1/due-date
Invoice date plus terms (net-30, net-45 business, end-of-month) rolled to a real working day.
/v1/paydays
A year of pay dates from a rule: last business day, the 15th, semi-monthly. Rolled early, never late.
/v1/common-days
Days that are working days in every region you name. Settlement pairs, support coverage, shipping.
/v1/bridge-days
Where one day of leave buys four or five off. Ranked by efficiency, per country and year.
/v1/batch
Up to a hundred operations in one request. Invoice runs and payroll batches without the round trips.
/v1/holidays + .ics
The raw calendars, as JSON or as a feed your calendar app subscribes to. The feed is free.
/v1/check · /v1/year
Classify one date, or get a year's totals by month for capacity planning.
One call, in your language
curl "https://dierum.io/v1/due-date?region=US&invoice_date=2027-01-15&terms=net30" \
-H "X-Api-Key: $KEY"
{
"invoice_date": "2027-01-15",
"terms": "net30",
"nominal_due": "2027-02-14", /* a Sunday */
"due_date": "2027-02-16", /* past Presidents' Day */
"rolled": true
}The docs carry the same example in Python, JavaScript, and C#, along with complete recipes for invoicing, SLA tracking, and payroll calendars.
Built for agents too
AI agents integrate Dierum without a human in the loop: a machine-readable OpenAPI spec, a compact llms.txt, one auth header, stable error codes, and self-serve keys. If your agent can read this page, it can wire itself up: signup is one POST, and every calculation is one GET. Date math is exactly the kind of thing an agent should never improvise.
What you're standing on
Holiday data is sourced from open, MIT-licensed calendar projects, checked against independent references, and organized into one queryable dataset with curated weekend rules and market calendars layered on top. Sources and dataset version are public at /health. Requests outside the covered range return an error, not a guess. We would rather refuse than be quietly wrong.