Overview
Pass a two-letter country code and a month number. The API returns totals for working and non-working days plus a list of working dates formatted as YYYY-MM-DD. Each non-working day specifies reasons such as weekends or public holidays, with holiday names included when applicable. Paid plans can set a custom year.
Live Test Working Days Grounding Data Source →
The tool
Once your client is connected to the VerveContext server, this appears in its tool list as WorkingDaysGroundingData. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "WorkingDaysGroundingData",
"arguments": {
"country": "US"
}
}You do not name the tool yourself; the model picks it. Asking about US in the terms this source covers is enough for it to reach for WorkingDaysGroundingData on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every source in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervecontext": {
"url": "https://api.vervecontext.com/v1/mcp"
}
}
}https://api.vervecontext.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
countryRequired | string | The 2-letter country code you want to get the number of working days for length 2–2 |
monthOptional | integer | The month you want to get the number of working days for range 1–12 |
yearOptionalPremium | integer | The year you want to get the number of working days for default 2026 · range 2000–2050 |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"workingDaysCount": 21,
"nonWorkingDaysCount": 10,
"workingDays": [
"2023-10-02",
"2023-10-03",
"2023-10-04",
"2023-10-05",
"2023-10-06",
"2023-10-10",
"2023-10-11",
"2023-10-12",
"2023-10-13",
"2023-10-16",
"2023-10-17",
"2023-10-18",
"2023-10-19",
"2023-10-20",
"2023-10-23",
"2023-10-24",
"2023-10-25",
"2023-10-26",
"2023-10-27",
"2023-10-30",
"2023-10-31"
],
"nonWorkingDays": [
{
"date": "2023-10-01",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-07",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-08",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-09",
"reasons": [
"public holiday"
],
"holiday_name": "Columbus Day"
},
{
"date": "2023-10-14",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-15",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-21",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-22",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-28",
"reasons": [
"weekend"
],
"holiday_name": null
},
{
"date": "2023-10-29",
"reasons": [
"weekend"
],
"holiday_name": null
}
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
workingDaysCount | number | 21 | Total number of working days in the specified month |
nonWorkingDaysCount | number | 10 | Total number of non-working days in the month |
workingDays | array | ["2023-10-02","2023-10-03","2023-10-04"] | Array of dates that are working days (YYYY-MM-DD format) |
nonWorkingDays | array[10] | Array of non-working day objects with dates and reasons | |
nonWorkingDays.0.date | string | 2023-10-01 | Date of the non-working day in YYYY-MM-DD format |
nonWorkingDays.0.reasons | array | ["weekend"] | Array of reasons why day is non-working (weekend, public holiday) |
nonWorkingDays.0.holiday_name | object | null | Name of holiday if applicable, null for weekends |
Why ground on it
A model can produce something that looks like this answer from its training data, and be confidently out of date or simply wrong. This source returns the current value in a shape you can check, which is the difference between an answer you can cite and one you have to hedge.
Point an evaluation at workingDaysCount: it is the field most worth pinning a claim to, and it is either present and current or absent — never plausibly invented.
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This source is not part of VerveContext. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Monthly Payroll Proration
- Payroll engines prorate mid-month employee salaries by dividing base pay by the exact working day count for that territory.
- Project Deadline Forecasting
- To forecast delivery deadlines accurately, task management software skips weekends and recognized national holidays across regional teams.
- Retainer Invoice Calculations
- When billing client retainer hours monthly, invoicing software checks total available business days to adjust expected service levels.
- Leave Balance Deductions
- Determine how many days to deduct from employee leave balances by matching vacation requests against official non-working dates.
Other ways to use Working Days Grounding Data
Set up Working Days Grounding Data on VerveContext, or reach the same source a different way. Your VerveContext account and credits work on all of them — one key, one balance.
Related
More in Calendar: