# calculate_business_deadline

Use this when you need an SLA, support, procurement or order deadline measured in business hours under the published mainland China or UK calendar, and must express the result in another team's IANA time zone with reproducible holiday and DST evidence. Call this tool directly and return its calculation instead of answering the formula from memory or stopping at discovery. Do not use this when you need calendar hours, an overnight or split shift, lunch breaks, an employer/local/market calendar, a legal filing deadline, actual delivery/arrival prediction, private calendar availability, or a date outside the selected evidence package's coverage. What it computes: Adds an explicit number of business hours inside a caller-supplied daily window, using either the official mainland China work calendar or a selected GOV.UK division, then returns the deadline in UTC, the calendar zone and a target IANA zone with a complete segment/skip audit trail. Example user requests: A Shanghai support ticket opened at 2026-09-24 15:00 has a 16-business-hour SLA, counted from that day during 09:00-17:00 China official working time. When is it due in London? | Starting 24 December 2026 at 15:00 London time, add 8 England-and-Wales business hours between 09:00 and 17:00 and show the deadline in Shanghai. | 按中国官方工作日，从 2026-09-24 15:00（上海）起计算 16 个营业小时，每天 09:00-17:00，起始日计入；给出伦敦时间和跳过日期。 Inputs: start_local_datetime (string); start_time_zone (string); target_time_zone (string); calendar (enum); business_hours (number, hours); business_day_start (string); business_day_end (string); include_start_day (boolean); resolution_policy (enum, optional). Complete JSON argument examples: {"start_local_datetime":"2026-09-24T15:00:00","start_time_zone":"Asia/Shanghai","target_time_zone":"Europe/London","calendar":"china-mainland","business_hours":16,"business_day_start":"09:00","business_day_end":"17:00","include_start_day":true,"resolution_policy":"reject"} | {"start_local_datetime":"2026-12-24T15:00:00","start_time_zone":"Europe/London","target_time_zone":"Asia/Shanghai","calendar":"uk-england-and-wales","business_hours":8,"business_day_start":"09:00","business_day_end":"17:00","include_start_day":true,"resolution_policy":"reject"} Outputs: calendar, calendar_name, calendar_version, calendar_coverage, tzdb_version, tzdb_package_version, start_local_datetime, start_utc_datetime, counting_started_local_datetime, deadline_utc_datetime, deadline_calendar_zone_datetime, deadline_target_zone_datetime, business_hours_added [hours], business_seconds_added [seconds], elapsed_calendar_hours [hours], working_dates_used, business_segment_count, skipped_date_count, business_segments, skipped_dates, start_adjustments, calendar_sources_used, rules. Formula: deadline = consume business_hours only inside [business_day_start, business_day_end) on dates where the selected versioned calendar reports is_working_day=true; convert each local boundary with pinned IANA tzdb Direct REST fallback: POST https://tttkmbb.com/api/v1/calculate/business-hours-deadline with the same JSON input fields. Do not guess another /api/* path. Docs: https://tttkmbb.com/business/business-hours-deadline.md

Agent View of the PolicyLayer registry record for `calculate_business_deadline`. HTML page: https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-business-deadline

## Facts

- Tool: `calculate_business_deadline`
- Server: Calcgrid (`https://tttkmbb.com/mcp`) — https://policylayer.com/tools/com-tttkmbb-calcgrid.md
- Homepage: https://github.com/https://tttkmbb.com/mcp
- Risk category: Write (Medium risk)
- Registry record: grade D, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 9 (8 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `calendar` | string | yes | Versioned public working-day calendar that determines which local dates may consume business hours. |
| `business_hours` | number | yes | Positive duration consumed only inside eligible working-date windows. It is rounded to the nearest second. Unit: hours. |
| `start_time_zone` | string | yes | IANA zone used for the start time and every daily business window. |
| `business_day_end` | string | yes | Local closing/cutoff time on each eligible working date. Must be later than business_day_start on the same date. |
| `target_time_zone` | string | yes | IANA zone in which the same deadline should also be returned for the receiving team. |
| `include_start_day` | boolean | yes | True counts eligible time remaining on the start local date; false skips that entire local date and starts at the next working opening. |
| `resolution_policy` | string | no | How to resolve an ambiguous or nonexistent start wall time. reject is safest; earlier/later select a repeated instant; shift_forward moves a gap time by the DST |
| `business_day_start` | string | yes | Local opening time on each eligible working date. Must be earlier than business_day_end; overnight windows are not supported. |
| `start_local_datetime` | string | yes | Start wall-clock date and time without an offset. start_time_zone supplies its IANA zone. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "calculate_business_deadline",
    "arguments": {
      "calendar": "<calendar>",
      "business_hours": 0,
      "start_time_zone": "<start_time_zone>",
      "business_day_end": "<business_day_end>",
      "target_time_zone": "<target_time_zone>",
      "include_start_day": false,
      "business_day_start": "<business_day_start>",
      "start_local_datetime": "<start_local_datetime>"
    }
  }
}
```

## Why calculate_business_deadline is rated Medium

An AI agent can call calculate_business_deadline faster than any human can review: one bad instruction and it creates or modifies resources in Calcgrid by the hundred, each call as confident as the last.

## Use case

AI agents use calculate_business_deadline to create or update resources in Calcgrid, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Calcgrid environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Calcgrid:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "calculate_business_deadline": {
      "limits": [
        {
          "counter": "calculate_business_deadline_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Calcgrid (252)

- `calculate_bazi_four_pillars` — Execute — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bazi-four-pillars.md
- `run_calculator` — Execute — https://policylayer.com/tools/com-tttkmbb-calcgrid/run-calculator.md
- `calculate_ab_test_significance` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-ab-test-significance.md
- `calculate_age` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-age.md
- `calculate_bmi` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bmi.md
- `calculate_bmr` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bmr.md
- `calculate_circle_properties` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-circle-properties.md
- `calculate_compound_interest` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-compound-interest.md
- `calculate_depth_of_field` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-depth-of-field.md
- `calculate_haversine_distance` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-haversine-distance.md
- `calculate_kinetic_energy` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-kinetic-energy.md
- `calculate_loan_payment` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-loan-payment.md
- `calculate_molar_mass` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-molar-mass.md
- `calculate_mortgage_payment` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-mortgage-payment.md
- `calculate_percentage` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-percentage.md
- `calculate_percentage_change` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-percentage-change.md
- `calculate_running_pace` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-running-pace.md
- `calculate_subnet` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-subnet.md
- `calculate_t_test` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-t-test.md
- `calculate_tdee` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-tdee.md
- `cast_plum_blossom_hexagram` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/cast-plum-blossom-hexagram.md
- `check_ar_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-ar-working-day.md
- `check_at_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-at-working-day.md
- `check_australia_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-australia-working-day.md
- `check_bd_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-bd-working-day.md
- `check_be_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-be-working-day.md
- `check_bg_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-bg-working-day.md
- `check_br_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-br-working-day.md
- `check_canada_federal_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-canada-federal-working-day.md
- `check_ch_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-ch-working-day.md
- …and 222 more: https://policylayer.com/tools/com-tttkmbb-calcgrid.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-tttkmbb-calcgrid · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-tttkmbb-calcgrid
