{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiatdock-com/json-schema/fiatdock-com-timezone-convert-schema.json",
  "title": "TimezoneConvert",
  "description": "Paid. Time zone conversion (IANA tz database, DST-aware).",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fiatdock-com-time-api-openapi.yml#/components/schemas/TimezoneConvert",
  "type": "object",
  "properties": {
    "instantUtc": {
      "type": "string",
      "description": "The instant converted, in UTC (ISO 8601)"
    },
    "inputWasLocal": {
      "type": "boolean",
      "description": "True when `time` had no Z or offset and was read as wall-clock time in `from`"
    },
    "localTimeIssue": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "nonexistent",
        "ambiguous"
      ],
      "description": "For a local `time` only: \"nonexistent\" = that wall-clock time does not happen in `from` (clocks went forward) and was moved forward by the gap; \"ambiguous\" = it happens twice (clocks went back) and the EARLIER instant was taken. null otherwise"
    },
    "alternativeInstantUtc": {
      "type": [
        "string",
        "null"
      ],
      "description": "For an ambiguous local `time`: the LATER of its two instants, in UTC. null otherwise"
    },
    "from": {
      "type": "string",
      "description": "The zone a local `time` was read in (default UTC)"
    },
    "fromLocalTime": {
      "type": "string",
      "description": "The instant as wall-clock time in `from`, ISO 8601 with offset"
    },
    "count": {
      "type": "number",
      "description": "Zones returned"
    },
    "times": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "zone": {
            "type": "string",
            "description": "The zone as asked (case-corrected when ICU knows the same name)"
          },
          "resolvedZone": {
            "type": "string",
            "description": "The tz identifier ICU resolves it to — a link resolves to the zone it names (US/Eastern → America/New_York; Asia/Kolkata → Asia/Calcutta, the same zone)"
          },
          "localTime": {
            "type": "string",
            "description": "Wall-clock time there, ISO 8601 with the zone's offset (2026-10-08T17:00:00+02:00)"
          },
          "utcOffset": {
            "type": "string",
            "description": "The zone's UTC offset at that instant (+02:00)"
          },
          "abbreviation": {
            "type": [
              "string",
              "null"
            ],
            "description": "ICU's English short name (EDT, PST — or just GMT+2 where English has none)"
          },
          "isDst": {
            "type": "boolean",
            "description": "On daylight-saving time at that instant (inferred from offsets — see note)"
          },
          "dayOfWeek": {
            "type": "string",
            "description": "Weekday there, in English"
          },
          "date": {
            "type": "string",
            "description": "Calendar date there (YYYY-MM-DD)"
          }
        },
        "required": [
          "zone",
          "resolvedZone",
          "localTime",
          "utcOffset",
          "abbreviation",
          "isDst",
          "dayOfWeek",
          "date"
        ]
      },
      "description": "The instant in each requested zone, in the order asked"
    },
    "source": {
      "type": "string",
      "description": "Where the time zone rules came from (the tz database version compiled into this server)"
    },
    "asOf": {
      "type": "string",
      "description": "ISO time the conversion was computed"
    },
    "note": {
      "type": "string",
      "description": "How a local time, DST and the abbreviation are decided, and the limits"
    }
  },
  "required": [
    "instantUtc",
    "inputWasLocal",
    "localTimeIssue",
    "alternativeInstantUtc",
    "from",
    "fromLocalTime",
    "count",
    "times",
    "source",
    "asOf",
    "note"
  ]
}