AVAILABLE

Scheduling

Timezone & Schedule Guard

Resolve local wall times, convert absolute instants, validate schedule windows, and expose IANA offset transitions without geolocation or natural-language guessing.

CONTRACT

Predictable for agents. Legible for reviewers.

REST
POST /v1/time/resolve-local
MCP tool
resolve_local_time
Inputs
An explicit local datetime and IANA zone, one RFC 3339 instant plus up to 20 target zones, or a bounded schedule/transition interval depending on the operation.
Returns
Unique, ambiguous, or nonexistent local-time resolution; zone conversions; exact and wall-clock durations; or one-second offset-transition evidence with a CLEAR, REVIEW_REQUIRED, or BLOCKED decision.
Latency
Synchronous
Usage unit
Time operation

The focused suite also exposes /v1/time/convert, /v1/time/window-check, and /v1/time/transition-check plus the separate /mcp/time server. It supports 1970 through 2100 using the pinned tzdata package, stores no payload, infers no zone from a city, IP, locale, or abbreviation, and never silently shifts a nonexistent time or chooses an ambiguous fold.

AGENT-READABLE EXCEPTIONS

LOCAL_DATETIME_INVALIDTIME_ZONE_NOT_FOUNDLOCAL_TIME_AMBIGUOUSLOCAL_TIME_NONEXISTENTINSTANT_RFC3339_REQUIREDSCHEDULE_WINDOW_NOT_FORWARDSCHEDULE_WALL_DURATION_DIFFERSOFFSET_TRANSITION_IN_WINDOW
HTTP request
POST /v1/time/resolve-local
Authorization: Bearer apc_...
Content-Type: application/json

{
  "local_datetime": "2026-11-01T01:30:00",
  "time_zone": "America/New_York",
  "disambiguation": "EARLIER"
}
cURL (bash)
curl --request POST \
  --url 'https://api-production-9502.up.railway.app/v1/time/resolve-local' \
  --header 'Authorization: Bearer ${AP_CONTROL_API_KEY}' \
  --header 'Content-Type: application/json' \
  --data '{
  "local_datetime": "2026-11-01T01:30:00",
  "time_zone": "America/New_York",
  "disambiguation": "EARLIER"
}'
Representative response
{
  "status": "COMPLETED",
  "decision": "CLEAR",
  "resolution": "AMBIGUOUS",
  "local_datetime": "2026-11-01T01:30:00",
  "time_zone": "America/New_York",
  "disambiguation": "EARLIER",
  "candidates": [
    {
      "fold": 0,
      "instant_utc": "2026-11-01T05:30:00Z",
      "local_datetime": "2026-11-01T01:30:00-04:00",
      "utc_offset": "-04:00",
      "utc_offset_seconds": -14400,
      "abbreviation": "EDT",
      "is_dst": true
    },
    {
      "fold": 1,
      "instant_utc": "2026-11-01T06:30:00Z",
      "local_datetime": "2026-11-01T01:30:00-05:00",
      "utc_offset": "-05:00",
      "utc_offset_seconds": -18000,
      "abbreviation": "EST",
      "is_dst": false
    }
  ],
  "chosen": {
    "fold": 0,
    "instant_utc": "2026-11-01T05:30:00Z",
    "local_datetime": "2026-11-01T01:30:00-04:00",
    "utc_offset": "-04:00",
    "utc_offset_seconds": -14400,
    "abbreviation": "EDT",
    "is_dst": true
  },
  "gap_seconds": null,
  "fold_0_offset_seconds": -14400,
  "fold_1_offset_seconds": -18000,
  "tzdata_package_version": "2026.3",
  "issues": [
    {
      "code": "LOCAL_TIME_AMBIGUITY_RESOLVED",
      "severity": "INFO",
      "message": "The duplicated wall time was resolved using the caller's explicit policy.",
      "next_action": "Use the chosen absolute instant and retain the disambiguation policy with the schedule.",
      "evidence": {
        "selected": "EARLIER",
        "chosen_instant": "2026-11-01T05:30:00Z"
      }
    }
  ],
  "input_sha256": "95ef...",
  "next_action": "Use the chosen absolute instant and preserve the explicit fold policy."
}
No silent DST choiceRepeated local times require EARLIER or LATER; nonexistent wall times are blocked instead of shifted.
Explicit time identityAbsolute RFC 3339 instants remain the ordering and duration identity across every target zone.
No location guessingThe API never infers a zone from a city, IP address, locale, abbreviation, or natural-language phrase.

Use Timezone & Schedule Guard through RapidAPI.

Choose a capped marketplace plan, copy the generated request, and route the structured result through your own authorized workflow.