Skip to main content
Glama

ToolForte

Working Days Calculator

working_days_between
Read-onlyIdempotent

Use this when you need the number of working days between two dates. Example prompt: "How many working days are there between 1 March and 30 April 2027?" Count working days (Mon-Fri) between two dates inclusive, optionally excluding Dutch public holidays. Exact date math for SLA, payroll, and planning questions. Costs 1 credit. The answer is deterministic.

Input Schema

NameRequiredDescriptionDefault
endYesYYYY-MM-DD
startYesYYYY-MM-DD
excludeDutchHolidaysNoSkip Dutch public holidays that fall on a weekday (default true)

Output Schema

NameRequiredDescriptionDefault
endNo
startNo
resultNoThe result, when it is not an object
totalDaysNo
weekendDaysNo
workingDaysNo
holidaysExcludedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed2 schema fields changed
    • addedInput schema / properties / excludeDutchHolidays / description
      Added value: +"Skip Dutch public holidays that fall on a weekday (default true)"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "end": {
      +      "type": "string"
      +    },
      +    "holidaysExcluded": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "result": {
      +      "description": "The result, when it is not an object"
      +    },
      +    "start": {
      +      "type": "string"
      +    },
      +    "totalDays": {
      +      "type": "number"
      +    },
      +    "weekendDays": {
      +      "type": "number"
      +    },
      +    "workingDays": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • removedInput schema / properties / excludeDutchHolidays / description
      Removed value: -"Skip Dutch public holidays that fall on a weekday (default true)"
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "https://json-schema.org/draft/2020-12/schema",
      -  "additionalProperties": {},
      -  "properties": {
      -    "end": {
      -      "type": "string"
      -    },
      -    "holidaysExcluded": {
      -      "items": {},
      -      "type": "array"
      -    },
      -    "result": {
      -      "description": "The result, when it is not an object"
      -    },
      -    "start": {
      -      "type": "string"
      -    },
      -    "totalDays": {
      -      "type": "number"
      -    },
      -    "weekendDays": {
      -      "type": "number"
      -    },
      -    "workingDays": {
      -      "type": "number"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  4. Changed2 schema fields changed
    • addedInput schema / properties / excludeDutchHolidays / description
      Added value: +"Skip Dutch public holidays that fall on a weekday (default true)"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "end": {
      +      "type": "string"
      +    },
      +    "holidaysExcluded": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "result": {
      +      "description": "The result, when it is not an object"
      +    },
      +    "start": {
      +      "type": "string"
      +    },
      +    "totalDays": {
      +      "type": "number"
      +    },
      +    "weekendDays": {
      +      "type": "number"
      +    },
      +    "workingDays": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful non-schema facts — it costs 1 credit and the result is deterministic — but says nothing further about limits, date-range bounds, or holiday-set sourcing. The added cost/determinism notes earn credit above the annotation-only baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The when-to-use condition is front-loaded, followed by the core counting rule, and the whole thing is four short sentences. The example prompt and the SLA/payroll/planning line are somewhat padded, and "The answer is deterministic" is a low-value closer, keeping it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the inputs, counting convention, and cost are all covered. What remains thin is edge handling — invalid ranges, whether weekends are always excluded, and which holiday calendar version applies — minor gaps for a tool this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the YYYY-MM-DD pattern and the excludeDutchHolidays default of true, so the schema carries parameter meaning. The description adds only the inclusive-counting convention and the Mon-Fri definition, which is a small but real clarification. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — counting working days (Mon-Fri) between two dates, inclusive, with optional Dutch holiday exclusion. That is far more precise than the tool name alone. It does not explicitly differentiate from the related sibling dutch_public_holidays, which an agent might otherwise confuse with holiday-aware counting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this when you need the number of working days between two dates" plus a concrete example prompt gives a clear usage context, and the SLA/payroll/planning framing hints at the domain. No when-not conditions or named alternatives are offered, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources