Verified business-day math for AI agents.
Agents confidently answer "what's 5 business days after Dec 22 in the UK?" or "how many working days are in this month?" — and get them wrong: they miscount, forget public holidays, and assume every country's weekend is Saturday/Sunday. bizdays returns the deterministic answer, showing the weekend rule and the exact holidays it skipped. "Qiniso" means "truth" in Zulu.
Business-day math looks trivial and isn't: the answer depends on a country's public-holiday calendar and its weekend rule, and "holiday" must mean a real day off — not an observance. LLMs hold none of this reliably, so they answer fluently and wrongly. bizdays computes it deterministically.
| Task | LLM alone | bizdays |
|---|---|---|
| Count working days in a month | 63% wrong | 0% |
| Is this date a working day? | 20% wrong | 0% |
| Add N working days to a date | 0% wrong | 0% |
Method: 30 business-day questions across 12 countries on the 2025 calendar, asked of a frontier model with no tools, scored against ground truth from authoritative sources (date-holidays + Unicode CLDR). The model handles small "add N days" hops but breaks on counting a month and on non-Western weekends (it flipped a UAE Friday and Saudi National Day). bizdays is correct by construction. Reproduce it with the harness in the repo (bench/).
Resolved per country from Unicode CLDR — Fri/Sat in Saudi Arabia, Egypt & Israel; Fri in Iran; Sun in India; Sat/Sun in the UAE (post-2022) — with a curated override layer for cases CLDR gets wrong (Bangladesh, Nepal).
Off-the-shelf holiday data counts observances like Valentine's Day, Tax Day and Christmas Eve as holidays. Those aren't days off. bizdays counts only real public holidays, so deadlines don't drift.
Add or subtract N working days to a date, skipping weekends + public holidays.
Count working days between two dates, with a weekend/holiday breakdown.
Is a date a working day? If not, the precise reason and holiday name.
First working day strictly after a date.
Last working day strictly before a date.
Weekend rule + source, whether holidays apply, and a confidence flag.
A Tier-1 set of ~65 countries is verified; others work but are flagged unverified. Where no holiday calendar exists (e.g. Qatar, Kuwait, Oman), the correct weekend still applies and the response says so. Dates are YYYY-MM-DD in UTC; no regional/optional holidays unless you pass them via extraHolidays.
Settings → Connectors → Add custom connector, and paste the URL. Hosted on the edge, no login, no key:
https://bizdays.qinisolabs.workers.dev/mcp
Prefer no dependency on the hosted endpoint? Run it yourself over stdio — add this to your MCP client config (e.g. Claude Desktop → Settings → Developer → Edit Config), then restart:
{
"mcpServers": {
"bizdays": { "command": "npx", "args": ["-y", "@qinisolabs/bizdays"] }
}
}
Using asdf or nvm? The desktop app may not see npx on its PATH — replace "npx" with the full path from which npx.
Every tool is also a typed function — no MCP required:
npm i @qinisolabs/bizdays
import { addBusinessDays, isBusinessDay } from "@qinisolabs/bizdays";
addBusinessDays("2025-12-22", 5, "GB").result; // "2025-12-31" (skips Christmas + Boxing Day)
isBusinessDay("2025-06-13", "SA").isBusinessDay; // false — Friday is weekend in Saudi Arabia