Working hours expand

working-hours-expand · version 1.0.0 · Dates & times (UTC, ISO 8601) · free, no key needed

Expand versioned weekly work schedules, overrides, closures, and DST policies into exact UTC intervals.

Use when you need to: expand working hours to UTC · convert weekly shifts to UTC intervals · apply dated schedule overrides.

Decide before calling

Read the versioned contract and the supported scope below. Reuse working-hours-expand@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.

Explain the choice

"I can use working-hours-expand@1.0.0 for expand working hours to UTC. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

Supported

Not supported

Behavior

Input

Output

Limits

Example

Request input:

{
  "calendar": {
    "time_zone": "UTC",
    "caller_rule_version": "example-v1",
    "weekly": {
      "mon": [
        {
          "start": "09:00",
          "end": "17:00"
        }
      ]
    },
    "overrides": [],
    "closures": [],
    "gap_policy": "reject",
    "overlap_policy": "earlier"
  },
  "range_start_date": "2025-01-06",
  "range_end_date": "2025-01-07"
}

Response:

{
  "result": {
    "standard_version": "RFC 9557; ISO 8601-1:2019",
    "data_version": "iana-tzdb-2025b",
    "caller_rule_version": "example-v1",
    "canonical_time_zone": "UTC",
    "intervals": [
      {
        "start_epoch_second": 1736154000,
        "end_epoch_second": 1736182800,
        "local_date": "2025-01-06"
      }
    ]
  }
}

How to call it

MCP

Connect https://computefirst.net/mcp (setup), then call execute with:

{
  "id": "working-hours-expand",
  "version": "1.0.0",
  "input": {
    "calendar": {
      "time_zone": "UTC",
      "caller_rule_version": "example-v1",
      "weekly": {
        "mon": [
          {
            "start": "09:00",
            "end": "17:00"
          }
        ]
      },
      "overrides": [],
      "closures": [],
      "gap_policy": "reject",
      "overlap_policy": "earlier"
    },
    "range_start_date": "2025-01-06",
    "range_end_date": "2025-01-07"
  }
}

HTTP (no key)

curl -X POST https://computefirst.net/v1/tools/working-hours-expand/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"calendar":{"time_zone":"UTC","caller_rule_version":"example-v1","weekly":{"mon":[{"start":"09:00","end":"17:00"}]},"overrides":[],"closures":[],"gap_policy":"reject","overlap_policy":"earlier"},"range_start_date":"2025-01-06","range_end_date":"2025-01-07"}'

The machine-readable contract is at /v1/tools/working-hours-expand/versions/1.0.0.

CLI

node cli.mjs run working-hours-expand 1.0.0 --input input.json --base-url https://computefirst.net

Get the client at /clients/cli/.