Count business days
1 business day from July 3, 2026 through July 6, 2026 on federal offices.
- July 3, 2026: federal offices closed, banks open (Independence Day observed).
- Saturdays and Sundays are not business days.
Both ends count when they are business days, the same shape as Excel NETWORKDAYS. Changing a date or the calendar asks this site’s API. Sources: OPM Federal Holidays and Federal Reserve K.8. Not legal, payroll, or financial advice.
Try it
July 4, 2026 is a Saturday. For most federal employees the holiday is Friday, July 3. The next business day after Thursday, July 2 is Monday, July 6.
Set BIZDAY to this site's origin, with no path, then run either command.
BIZDAY=http://209.38.202.154
curl -s "$BIZDAY/v1/business-days/add?start=2026-07-02&days=1"
{
"calendar": "us-federal-opm",
"start": "2026-07-02",
"days": 1,
"date": "2026-07-06",
"business_day": true
}
Samples on this page leave out sources and disclaimer. The live JSON includes both.
Dates are civil dates (YYYY-MM-DD), not timestamps. There is no time zone to get wrong.
A due date that lands on a closure stays put only when that date is already a business day. On the default calendar, Friday, July 3, 2026 is Independence Day observed, so it rolls to Monday, July 6. Thursday, July 2 does not roll. add cannot express that: days=1 always leaves the start date.
curl -s "$BIZDAY/v1/business-days/roll?date=2026-07-03&direction=next"
{
"calendar": "us-federal-opm",
"date": "2026-07-03",
"direction": "next",
"rolled": true,
"result": "2026-07-06",
"result_weekday": "Monday",
"reason": "observed federal holiday"
}
July 3, 2026: offices closed, banks open
Independence Day is Saturday, July 4, 2026. Federal offices close Friday, July 3. Federal Reserve Banks stay open that Friday. The Board of Governors in Washington closes with the offices, not with the Banks. Omit calendar and you still get us-federal-opm.
curl -s "$BIZDAY/v1/business-days/check?date=2026-07-03&calendar=us-fed-banking"
{
"calendar": "us-fed-banking",
"date": "2026-07-03",
"weekday": "Friday",
"business_day": true
}
One business day after Thursday, July 2 is Friday, July 3 on the Bank calendar, and Monday, July 6 on the office calendar. Sunday holidays close the following Monday on both. GET /v1/calendars lists the ids, the source URL, and the Saturday rule.
Veterans Day 2026 is a Wednesday, November 11, so federal offices and Reserve Banks both close.
Endpoints
GET /v1 lists them as JSON. Parameters shown in the table are required. calendar is optional on every calculation. Unknown parameters are rejected. The default calendar is us-federal-opm.
Agents should read /llms.txt first. It names both calendars and points at OpenAPI 3.1 (/openapi.json). The server URL inside that file is /, so it describes the host that served it. Examples in the file are real responses, including sources.
The same six calculations are MCP tools at POST /mcp (streamable HTTP, no session). Protocol versions are 2026-07-28, 2025-11-25, 2025-06-18, and 2025-03-26. Tool names match the operation ids is_business_day, add_business_days, count_business_days, roll_date, list_holidays, and list_calendars. GET /.well-known/mcp.json is the manifest. GET /.well-known/mcp/server-card.json is the server card: the same tools, no auth. The API process builds those files, /openapi.json, and /llms.txt.
| Request | What you get |
|---|---|
/v1/business-days/check?date=2026-07-03 |
Whether that date is a business day, why, and the previous and next business days. |
/v1/business-days/add?start=2026-07-02&days=1 |
The date days business days away. The start date is day 0, matching Excel WORKDAY. days may be negative or zero. |
/v1/business-days/diff?start=2026-11-25&end=2026-11-27 |
How many business days are in the inclusive span, matching Excel NETWORKDAYS. Negative when end is earlier. |
/v1/business-days/roll?date=2026-07-03&direction=next |
That date if it is a business day. Otherwise the nearest business day. direction is next or previous. This is not Excel WORKDAY. |
/v1/holidays?year=2026 |
The eleven nationwide holidays for that legal year, with the actual date and the observed day off. On us-fed-banking, a Saturday holiday has observed: null because Friday stays open. |
/v1/calendars |
Both calendars: id, name, source URL, Saturday and Sunday rules, coverage, last verified, and changelog. |
/v1/health |
Liveness. Not rate limited. |
Holidays in the count are already skipped. Do not subtract them a second time.
What “business day” means here
A business day is Monday through Friday, and not an observed nationwide federal holiday.
- Legal holidays are the eleven dates in 5 U.S.C. § 6103(a), including Juneteenth.
- If the legal date is a Saturday, the observed day is the Friday before (§ 6103(b)(1)).
- If the legal date is a Sunday, the observed day is the Monday after (Executive Order 11582 § 3(a), which is the rule OPM publishes).
- Names follow the statute. Washington’s Birthday is not renamed Presidents Day.
Supported dates: 2021-01-01 through 2100-12-31. Juneteenth has been a federal holiday only since 2021, so earlier years are rejected rather than guessed.
Checked against OPM’s Federal Holidays tables for 2021–2030 on 2026-10-17. Years after 2030 use the same rules. They are not a copy of a later OPM table.
What it does not include
- Inauguration Day. It is a holiday only in the Washington, DC area (§ 6103(c)). The check endpoint reports
dc_inaugurationand still counts the day as a nationwide business day unless it is also a normal federal holiday or a weekend. When January 20 falls on Saturday, OPM does not add a Friday in lieu. - State holidays, Good Friday, and NYSE or Nasdaq holidays. Reserve Bank closings are
us-fed-banking. That calendar does not include the Board of Governors’ Friday closure when the legal holiday is a Saturday, and it does not include ACH cutoff times. - Compressed schedules and workweeks other than Monday–Friday. OPM lets agencies observe some of those differently.
Not legal, payroll, or financial advice. For pay and leave, use the OPM schedule and your agency’s rules. roll is only the calendar step. It does not decide whether a filing is timely. USCIS Policy Alert PA-2026-15 (effective October 23, 2026) moves some paper deadlines that are written as a number of days to the next business day, and does not move every date that falls on a weekend.
Limits
Preview traffic is free: 60 requests per minute per IP on the calculation endpoints and on POST /mcp tool calls. /v1, /v1/health, /openapi.json, /llms.txt, /.well-known/mcp.json, /.well-known/mcp/server-card.json, and MCP initialize, ping, server/discover, and tools/list are exempt. Over the limit you get 429 and a Retry-After header. There is no API key yet.
Calendar responses are JSON. The calculation routes are GET. POST /mcp is JSON-RPC. Responses send Access-Control-Allow-Origin: *. A browser Origin is accepted only when its host is this server. Successful calendar GET responses may be cached for five minutes. MCP responses are not cached.
Pricing
Not for sale yet. The planned offer is a one-time pack of 5,000 calls for $9, paid through Stripe, with the key shown on the return page. No monthly subscription. No card data would be stored on this server.
A Stripe restricted key is installed, in test mode only. Checkout stays off until a public contact address is printed on the privacy page.
Sources
- 5 U.S.C. § 6103
- OPM Federal Holidays
- Executive Order 11582 (February 11, 1971), § 3(a), as cited by OPM for Sunday holidays
- Federal Reserve K.8, Holidays Observed for
us-fed-banking. Checked 2026-10-17. The 2021–2025 rows come from earlier K.8 tables and the June 17, 2021 Juneteenth press release.