Date Math v1.8.0
Date Math / Tools / business_day_schedule

Schedules on the nth or last business day

Job schedules that skip weekends and public holidays, which cron cannot express: "3rd business day of the month at 09:00", "last business day", "every Monday, or the next business day if it is a holiday", or any cron with a holiday rule. Returns the next runs and whether it runs today. DST-aware. Use for payroll, billing, reports and batch jobs.

MCP tool business_day_scheduleHTTP POST /v1/business_day_schedule25 free calls a day, then $0.001

Try it

Runs the real tool over MCP. Edit the arguments and run. Uses your daily free calls.

business_day_schedule
result
{
  "rule": "nth_business_day",
  "description": "3rd business day of every month at 09:00 (Europe/London); holidays: GB public holidays",
  "timezone": "Europe/London",
  "adjust": "none",
  "from": "2026-11-10T00:00:00+00:00",
  "count": 2,
  "runs": [
    {
      "date": "2026-12-03",
      "datetime": "2026-12-03T09:00:00+00:00",
      "utc": "2026-12-03T09:00:00Z",
      "weekday": "Thursday",
      "scheduled_date": "2026-12-03",
      "adjusted": false,
      "is_business_day": true
    }
  ],
  "check": {
    "date": "2026-11-10",
    "weekday": "Tuesday",
    "is_business_day": true,
    "reason": null,
    "runs": false,
    "run_times": []
  }
}

The result shown before you run is a saved example response.

Use it from your agent

Add the MCP server once and your agent can call business_day_schedule and the other 22 tools.

Claude Code

One command in your terminal.

claude mcp add --transport http date-math https://date-math.datemath.workers.dev/mcp

Any MCP client

Claude Desktop, Cursor, VS Code, Windsurf.

{
  "mcpServers": {
    "date-math": {
      "url": "https://date-math.datemath.workers.dev/mcp"
    }
  }
}

HTTP + x402

POST JSON; pay the 402 with any x402 client.

curl -X POST https://date-math.datemath.workers.dev/v1/business_day_schedule \
  -H "Content-Type: application/json" \
  -d '{"rule":"nth_business_day","n":3,"timezone":"Europe/London","country":"GB","from":"2026-11-10","count":2}'

Full schema: OpenAPI · llms.txt

Questions

Common questions, answered with real results from the tool.

How do I run a job on the 3rd business day of every month?

Use rule nth_business_day with n: 3, a time, a time zone and a country. Weekends and that country's public holidays are skipped when counting. In the UK in January 2027 the 3rd business day is 2027-01-06, because New Year's Day and the weekend do not count.

How do I run a job every Monday, or the next business day when Monday is a holiday?

Use rule weekly with weekdays [1] and adjust next (the default). In the UK, Monday 2026-12-28 is the Boxing Day substitute holiday, so that week's run moves to Tuesday 2026-12-29.

How does a job know whether it should run today?

Every result includes check: whether the schedule runs on check_date (today by default), at what times, and, if a run was scheduled that day but moved, where it moved to. For the last business day of the month in the US, 2026-12-31 is a run day.