ToolAssay

Give it a search window, a meeting length, and for each participant a list of bu

Give it a search window, a meeting length, and for each participant a list of busy blocks — start and end, nothing else — and it returns the windows in which the meeting fits. Each participant carries their own IANA timezone and working hours, so nine-to-five means nine-to-five where they are, across daylight saving changes, and a meeting is only offered when it lies entirely inside one working-hours block for everyone counted as present.

Answeringour last check, 2026-10-11
1 of 1checks answered this week
1190 msmedian answer time
$0.002listed price per call
$0.002price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://buero.halowerk.com/v1/availability-resolve

CategorySearch and research
Provider hostbuero.halowerk.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-11 valid payment request 402$0.002 1190 ms

Example input (from the provider)

{
  "body": {
    "duration_minutes": 60,
    "output_timezone": "Europe/Berlin",
    "participants": [
      {
        "busy": [
          {
            "end": "2026-08-17T10:00:00Z",
            "start": "2026-08-17T08:00:00Z"
          }
        ],
        "id": "a",
        "timezone": "Europe/Berlin"
      },
      {
        "busy": [],
        "id": "b",
        "timezone": "America/New_York"
      }
    ],
    "window": {
      "end": "2026-08-19T00:00:00Z",
      "start": "2026-08-17T00:00:00Z"
    },
    "working_hours": {
      "end": "17:00",
      "start": "09:00"
    }
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "default_timezone": {
              "default": "UTC",
              "description": "Timezone for participants that do not name one.",
              "maxLength": 60,
              "type": "string"
            },
            "duration_minutes": {
              "description": "How long the meeting needs to be.",
              "maximum": 1440,
              "minimum": 5,
              "type": "integer"
            },
            "granularity_minutes": {
              "default": 15,
              "description": "Step of the candidate grid. Start times fall on this grid.",
              "enum": [
                5,
                10,
                15,
                20,
                30,
                60
              ],
              "type": "integer"
            },
            "ignore_working_hours": {
              "default": false,
              "description": "Search the whole window regardless of working hours.",
              "type": "boolean"
            },
            "max_results": {
              "default": 20,
              "description": "How many windows to return. What is dropped is counted.",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            "min_attendees": {
              "description": "Also return windows where only this many can attend. Default: everyone who is not optional.",
              "minimum": 1,
              "type": "integer"
            },
            "output_timezone": {
              "description": "Additionally render every returned time in this zone. Defaults to default_timezone.",
              "maxLength": 60,
              "type": "string"
            },
            "participants": {
              "description": "One entry per person. Identifiers are free text and need not be real names.",
              "items": {
                "additionalProperties": false,
                "properties": {
                  "busy": {
                    "description": "Busy blocks. Overlapping blocks are merged.",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "end": {
                          "description": "ISO 8601 with offset or Z.",
                          "maxLength": 40,
                          "type": "string"
                        },
                        "start": {
                          "description": "ISO 8601 with offset or Z.",
                          "maxLength": 40,
                          "type": "string"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ],
                      "type": "object"
                    },
                    "maxItems": 300,
                    "type": "array"
                  },
                  "id": {
                    "description": "Any label, unique within the request. \"a\" is fine.",
                    "maxLength": 80,
                    "minLength": 1,
                    "type": "string"
                  },
                  "optional": {
                    "default": false,
                    "description": "Optional participants may be missing from a returned window.",
                    "type": "boolean"
                  },
                  "timezone": {
                    "description": "IANA zone for this person, e.g. Europe/Berlin. Falls back to the request default.",
                    "maxLength": 60,
                    "type": "string"
                  },
                  "working_hours": {
                    "additionalProperties": false,
                    "description": "Working hours in this person local time. Omit to use the request default.",
                    "properties": {
                      "days": {
                        "description": "0 is Sunday, 6 is Saturday. Default Monday to Friday.",
                        "items": {
                          "maximum": 6,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "maxItems": 7,
                        "type": "array"
                      },
                      "end": {
                        "description": "HH:MM. An end before the start means the block runs past midnight.",
                        "maxLength": 5,
                        "type": "string"
                      },
                      "start": {
                        "description": "HH:MM, e.g. 09:00.",
                        "maxLength": 5,
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id"
                ],
                "type": "object"
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            "window": {
              "additionalProperties": false,
              "description": "The search window. Every load figure is measured over exactly this span for everyone.",
              "properties": {
                "end": {
                  "description": "ISO 8601.",
                  "maxLength": 40,
                  "type": "string"
                },
                "start": {
                  "description": "ISO 8601.",
                  "maxLength": 40,
                  "type": "string"
                }
              },
              "required": [
                "start",
                "end"
              ],
              "type": "object"
            },
     

This page as JSON