Business days
POST /api/business-daysCount business days (Mon–Fri) between two dates, inclusive of the start, exclusive of the end. Optional list of holiday dates to skip.
Input
| Field | Type | Description |
|---|---|---|
from * | any | Start date |
to * | any | End date |
holidays | any | Optional array of YYYY-MM-DD to exclude |
Example output
{
"businessDays": 5,
"calendarDays": 7
}
Try it - see the 402 challenge (free)
curl -i -X POST https://agent402.tools/api/business-days \
-H "Content-Type: application/json" \
-d '{"from":"2026-06-01","to":"2026-06-08","holidays":[]}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/business-days", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"from": "2026-06-01",
"to": "2026-06-08",
"holidays": []
}),
});
No wallet? Pay with compute
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=business-days")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/business-days", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"from":"2026-06-01","to":"2026-06-08","holidays":[]}) });
Part of these workflows
This tool is one step in 4 curated multi-tool workflows - agents can fetch the whole sequence as an MCP prompt or call https://agent402.tools/api/skill-packs/{slug}/prompt.
- Meeting scheduler - Schedule a meeting across timezones without the round-tripping. Convert a proposed UTC slot into every attendee's local time, verify it lands on a working day for each, project the end time, generate human-readable countdowns, expand recurring rules, and report exactly how far out the slot sits - in one deterministic pass.
- Multi-stop trip planner - Plan a multi-stop journey deterministically: geocode each stop, sum the pairwise haversine distances, estimate arrival times by adding driving hours per leg, count business days from today to each arrival, and pull the weather forecast at every US stop. Six tools - three pure-CPU (math + time), three egress (geocoding + weather) - covering the deterministic skeleton of every road-trip / sales-tour / delivery-route planning problem.
- Timezone planner - Time zone conversion, business day calculation, and cron schedule preview - scheduling in one pass.
- Locale brief - "Can I reach this counterparty this week?" - country facts, this year's public holidays, working days remaining this week, and what time it is there right now, in one call.
Related tools
Current time
GET /api/timeCurrent time: UTC ISO, epoch seconds/ms, day of week/year, ISO week - optionally rendered in any IANA timezone via ?tz=.
Time convert
POST /api/time-convertConvert between epoch (s or ms), ISO 8601, and any IANA timezone. Give a value, get every representation back.
Cron next runs
POST /api/cron-nextParse a 5-field cron expression and return the next N run times (UTC).