{
  "name": "Epoch Calculator API",
  "version": "v1",
  "base_url": "https://epochcalc.com/api/v1",
  "mcp_endpoint": "https://epochcalc.com/mcp",
  "docs": "https://epochcalc.com/api",
  "tools": [
    {
      "name": "time_now",
      "description": "The current time: Unix epoch in seconds and milliseconds, ISO 8601, and the local wall-clock time in a given IANA time zone with its current UTC offset and DST status. Use this before any relative date reasoning.",
      "input_schema": {
        "type": "object",
        "properties": {
          "timezone": {
            "type": "string",
            "description": "IANA time zone, e.g. \"America/New_York\". Defaults to UTC."
          }
        },
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "description": "One instant described in one IANA time zone.",
        "properties": {
          "epoch_seconds": {
            "type": "integer",
            "description": "Unix time in seconds."
          },
          "epoch_millis": {
            "type": "integer",
            "description": "Unix time in milliseconds."
          },
          "iso": {
            "type": "string",
            "description": "ISO 8601 with the zone offset."
          },
          "utc_iso": {
            "type": "string",
            "description": "ISO 8601 in UTC (Z)."
          },
          "timezone": {
            "type": "string",
            "description": "IANA zone name."
          },
          "offset": {
            "type": "string",
            "description": "UTC offset, e.g. \"+09:00\"."
          },
          "offset_minutes": {
            "type": "integer",
            "description": "UTC offset in minutes."
          },
          "abbreviation": {
            "type": "string",
            "description": "Zone abbreviation at that instant, e.g. \"BST\"."
          },
          "is_dst": {
            "type": "boolean",
            "description": "Whether daylight-saving time is in effect."
          },
          "weekday": {
            "type": "string",
            "description": "Full weekday name in English."
          },
          "rfc2822": {
            "type": "string",
            "description": "RFC 2822 date string."
          },
          "human": {
            "type": "string",
            "description": "Readable sentence with weekday, date, time and zone."
          }
        },
        "required": [
          "epoch_seconds",
          "epoch_millis",
          "iso",
          "utc_iso",
          "timezone",
          "offset",
          "offset_minutes",
          "abbreviation",
          "is_dst",
          "weekday",
          "rfc2822",
          "human"
        ]
      },
      "get": "https://epochcalc.com/api/v1/time_now"
    },
    {
      "name": "convert_timestamp",
      "description": "Convert a Unix timestamp (seconds or milliseconds; auto-detected unless unit is given) to a human-readable date in a time zone, with ISO 8601, RFC 2822, UTC offset, DST flag, weekday, and a relative phrase like \"3 days ago\".",
      "input_schema": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "number",
            "description": "Unix timestamp. Values >= 1e11 are treated as milliseconds unless unit is set."
          },
          "unit": {
            "type": "string",
            "enum": [
              "auto",
              "seconds",
              "milliseconds"
            ],
            "description": "Interpretation of timestamp. Default auto."
          },
          "timezone": {
            "type": "string",
            "description": "IANA time zone, e.g. \"America/New_York\". Defaults to UTC."
          }
        },
        "required": [
          "timestamp"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "description": "One instant described in one IANA time zone.",
        "properties": {
          "epoch_seconds": {
            "type": "integer",
            "description": "Unix time in seconds."
          },
          "epoch_millis": {
            "type": "integer",
            "description": "Unix time in milliseconds."
          },
          "iso": {
            "type": "string",
            "description": "ISO 8601 with the zone offset."
          },
          "utc_iso": {
            "type": "string",
            "description": "ISO 8601 in UTC (Z)."
          },
          "timezone": {
            "type": "string",
            "description": "IANA zone name."
          },
          "offset": {
            "type": "string",
            "description": "UTC offset, e.g. \"+09:00\"."
          },
          "offset_minutes": {
            "type": "integer",
            "description": "UTC offset in minutes."
          },
          "abbreviation": {
            "type": "string",
            "description": "Zone abbreviation at that instant, e.g. \"BST\"."
          },
          "is_dst": {
            "type": "boolean",
            "description": "Whether daylight-saving time is in effect."
          },
          "weekday": {
            "type": "string",
            "description": "Full weekday name in English."
          },
          "rfc2822": {
            "type": "string",
            "description": "RFC 2822 date string."
          },
          "human": {
            "type": "string",
            "description": "Readable sentence with weekday, date, time and zone."
          },
          "relative": {
            "type": "string",
            "description": "Relative phrase such as \"3 days ago\"."
          }
        },
        "required": [
          "epoch_seconds",
          "epoch_millis",
          "iso",
          "utc_iso",
          "timezone",
          "offset",
          "offset_minutes",
          "abbreviation",
          "is_dst",
          "weekday",
          "rfc2822",
          "human",
          "relative"
        ]
      },
      "get": "https://epochcalc.com/api/v1/convert_timestamp"
    },
    {
      "name": "parse_datetime",
      "description": "Parse a date/time string (ISO 8601, RFC 2822, HTTP date, SQL \"YYYY-MM-DD HH:mm:ss\", or a Unix timestamp) into a Unix timestamp and a normalized description. Strings without an offset are interpreted in the given time zone.",
      "input_schema": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "The date/time text to parse."
          },
          "timezone": {
            "type": "string",
            "description": "Zone to assume when the input carries no offset, and to report the result in. Defaults to UTC."
          }
        },
        "required": [
          "input"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "description": "One instant described in one IANA time zone.",
        "properties": {
          "epoch_seconds": {
            "type": "integer",
            "description": "Unix time in seconds."
          },
          "epoch_millis": {
            "type": "integer",
            "description": "Unix time in milliseconds."
          },
          "iso": {
            "type": "string",
            "description": "ISO 8601 with the zone offset."
          },
          "utc_iso": {
            "type": "string",
            "description": "ISO 8601 in UTC (Z)."
          },
          "timezone": {
            "type": "string",
            "description": "IANA zone name."
          },
          "offset": {
            "type": "string",
            "description": "UTC offset, e.g. \"+09:00\"."
          },
          "offset_minutes": {
            "type": "integer",
            "description": "UTC offset in minutes."
          },
          "abbreviation": {
            "type": "string",
            "description": "Zone abbreviation at that instant, e.g. \"BST\"."
          },
          "is_dst": {
            "type": "boolean",
            "description": "Whether daylight-saving time is in effect."
          },
          "weekday": {
            "type": "string",
            "description": "Full weekday name in English."
          },
          "rfc2822": {
            "type": "string",
            "description": "RFC 2822 date string."
          },
          "human": {
            "type": "string",
            "description": "Readable sentence with weekday, date, time and zone."
          },
          "input": {
            "type": "string",
            "description": "The text that was parsed."
          }
        },
        "required": [
          "epoch_seconds",
          "epoch_millis",
          "iso",
          "utc_iso",
          "timezone",
          "offset",
          "offset_minutes",
          "abbreviation",
          "is_dst",
          "weekday",
          "rfc2822",
          "human",
          "input"
        ]
      },
      "get": "https://epochcalc.com/api/v1/parse_datetime"
    },
    {
      "name": "convert_timezone",
      "description": "Convert a wall-clock date/time from one IANA time zone to another, correctly across daylight-saving transitions. Returns both sides with offsets, the hour difference at that instant, and whether either zone is on DST.",
      "input_schema": {
        "type": "object",
        "properties": {
          "datetime": {
            "type": "string",
            "description": "ISO 8601 date/time, e.g. \"2026-09-06T09:30\". If it has no offset it is read as wall time in from_timezone."
          },
          "from_timezone": {
            "type": "string",
            "description": "Source IANA zone, e.g. \"Asia/Tokyo\"."
          },
          "to_timezone": {
            "type": "string",
            "description": "Target IANA zone, e.g. \"Europe/London\"."
          }
        },
        "required": [
          "datetime",
          "from_timezone",
          "to_timezone"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "target": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "difference_hours": {
            "type": "number",
            "description": "target offset minus source offset, in hours."
          },
          "same_instant_utc": {
            "type": "string",
            "description": "The shared instant as ISO 8601 UTC."
          }
        },
        "required": [
          "source",
          "target",
          "difference_hours",
          "same_instant_utc"
        ]
      },
      "get": "https://epochcalc.com/api/v1/convert_timezone"
    },
    {
      "name": "date_duration",
      "description": "The exact duration between two dates or date-times: calendar years/months/days, plus total days, hours, minutes and seconds, and the number of weekdays (Mon-Fri). Handles leap years and DST via the IANA database.",
      "input_schema": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "description": "Start date/time (ISO 8601 or Unix timestamp)."
          },
          "end": {
            "type": "string",
            "description": "End date/time (ISO 8601 or Unix timestamp)."
          },
          "timezone": {
            "type": "string",
            "description": "IANA time zone, e.g. \"America/New_York\". Defaults to UTC."
          },
          "include_end": {
            "type": "boolean",
            "description": "Count the end date as a full day (adds one day). Default false."
          }
        },
        "required": [
          "start",
          "end"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "start": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "end": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "direction": {
            "type": "string",
            "enum": [
              "forward",
              "backward"
            ]
          },
          "years": {
            "type": "integer"
          },
          "months": {
            "type": "integer"
          },
          "days": {
            "type": "integer"
          },
          "hours": {
            "type": "integer"
          },
          "minutes": {
            "type": "integer"
          },
          "seconds": {
            "type": "integer"
          },
          "total_days": {
            "type": "integer"
          },
          "total_hours": {
            "type": "integer"
          },
          "total_minutes": {
            "type": "integer"
          },
          "total_seconds": {
            "type": "integer"
          },
          "weekdays": {
            "type": "integer",
            "description": "Monday to Friday days in the span."
          },
          "weekend_days": {
            "type": "integer"
          },
          "human": {
            "type": "string",
            "description": "Calendar duration in words, e.g. \"1 year, 2 months, 3 days\"."
          }
        },
        "required": [
          "start",
          "end",
          "direction",
          "years",
          "months",
          "days",
          "hours",
          "minutes",
          "seconds",
          "total_days",
          "total_hours",
          "total_minutes",
          "total_seconds",
          "weekdays",
          "weekend_days",
          "human"
        ]
      },
      "get": "https://epochcalc.com/api/v1/date_duration"
    },
    {
      "name": "epoch_math",
      "description": "Add to or subtract from a Unix timestamp in calendar-aware units (years, months, weeks, days, hours, minutes, seconds) in a time zone, e.g. \"now + 30 days\" or \"1748736543 - 3 months\". Returns the resulting timestamp in every format.",
      "input_schema": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "number",
            "description": "Base Unix timestamp (seconds or milliseconds, auto-detected). Omit for now."
          },
          "add": {
            "type": "object",
            "properties": {
              "years": {
                "type": "number"
              },
              "months": {
                "type": "number"
              },
              "weeks": {
                "type": "number"
              },
              "days": {
                "type": "number"
              },
              "hours": {
                "type": "number"
              },
              "minutes": {
                "type": "number"
              },
              "seconds": {
                "type": "number"
              }
            },
            "additionalProperties": false,
            "description": "Units to add."
          },
          "subtract": {
            "type": "object",
            "properties": {
              "years": {
                "type": "number"
              },
              "months": {
                "type": "number"
              },
              "weeks": {
                "type": "number"
              },
              "days": {
                "type": "number"
              },
              "hours": {
                "type": "number"
              },
              "minutes": {
                "type": "number"
              },
              "seconds": {
                "type": "number"
              }
            },
            "additionalProperties": false,
            "description": "Units to subtract."
          },
          "timezone": {
            "type": "string",
            "description": "Zone in which calendar units (months, days across DST) are applied. Defaults to UTC."
          }
        },
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "base": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "result": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "delta_seconds": {
            "type": "integer",
            "description": "result minus base, in seconds."
          }
        },
        "required": [
          "base",
          "result",
          "delta_seconds"
        ]
      },
      "get": "https://epochcalc.com/api/v1/epoch_math"
    },
    {
      "name": "cron_next_runs",
      "description": "Explain a 5- or 6-field cron expression in plain English and list its next run times in a time zone (as ISO 8601 and Unix timestamps). Use to answer \"when does this cron job run next?\" or to validate an expression.",
      "input_schema": {
        "type": "object",
        "properties": {
          "expression": {
            "type": "string",
            "description": "Cron expression, e.g. \"0 9 * * 1-5\"."
          },
          "timezone": {
            "type": "string",
            "description": "Zone the schedule is evaluated in. Defaults to UTC."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "How many upcoming runs to return. Default 5."
          },
          "from": {
            "type": "string",
            "description": "Start evaluating after this date/time (ISO 8601). Defaults to now."
          }
        },
        "required": [
          "expression"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "expression": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "Plain-English reading of the expression."
          },
          "timezone": {
            "type": "string"
          },
          "next_runs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "iso": {
                  "type": "string"
                },
                "utc_iso": {
                  "type": "string"
                },
                "epoch_seconds": {
                  "type": "integer"
                },
                "weekday": {
                  "type": "string"
                }
              },
              "required": [
                "iso",
                "utc_iso",
                "epoch_seconds",
                "weekday"
              ]
            }
          }
        },
        "required": [
          "expression",
          "description",
          "timezone",
          "next_runs"
        ]
      },
      "get": "https://epochcalc.com/api/v1/cron_next_runs"
    },
    {
      "name": "days_until",
      "description": "Countdown to a holiday or to a date: days, hours and minutes remaining, and the next occurrence date. Pass an event slug (e.g. \"christmas\", \"thanksgiving\", \"easter\", \"super-bowl\") or a date (YYYY-MM-DD). Call with no arguments to list the known events.",
      "input_schema": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "Event slug from the known list, e.g. \"christmas\"."
          },
          "date": {
            "type": "string",
            "description": "A target date (YYYY-MM-DD) or date-time (ISO 8601) instead of an event."
          },
          "timezone": {
            "type": "string",
            "description": "Zone whose midnight starts the target day. Defaults to UTC."
          }
        },
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "description": "With an event or date: the countdown fields. With no arguments: only the events list.",
        "properties": {
          "events": {
            "type": "array",
            "description": "Known events (only when called with no arguments).",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "required": [
                "slug",
                "name"
              ]
            }
          },
          "name": {
            "type": "string"
          },
          "target": {
            "type": "object",
            "description": "One instant described in one IANA time zone.",
            "properties": {
              "epoch_seconds": {
                "type": "integer",
                "description": "Unix time in seconds."
              },
              "epoch_millis": {
                "type": "integer",
                "description": "Unix time in milliseconds."
              },
              "iso": {
                "type": "string",
                "description": "ISO 8601 with the zone offset."
              },
              "utc_iso": {
                "type": "string",
                "description": "ISO 8601 in UTC (Z)."
              },
              "timezone": {
                "type": "string",
                "description": "IANA zone name."
              },
              "offset": {
                "type": "string",
                "description": "UTC offset, e.g. \"+09:00\"."
              },
              "offset_minutes": {
                "type": "integer",
                "description": "UTC offset in minutes."
              },
              "abbreviation": {
                "type": "string",
                "description": "Zone abbreviation at that instant, e.g. \"BST\"."
              },
              "is_dst": {
                "type": "boolean",
                "description": "Whether daylight-saving time is in effect."
              },
              "weekday": {
                "type": "string",
                "description": "Full weekday name in English."
              },
              "rfc2822": {
                "type": "string",
                "description": "RFC 2822 date string."
              },
              "human": {
                "type": "string",
                "description": "Readable sentence with weekday, date, time and zone."
              }
            },
            "required": [
              "epoch_seconds",
              "epoch_millis",
              "iso",
              "utc_iso",
              "timezone",
              "offset",
              "offset_minutes",
              "abbreviation",
              "is_dst",
              "weekday",
              "rfc2822",
              "human"
            ]
          },
          "is_past": {
            "type": "boolean"
          },
          "days": {
            "type": "integer"
          },
          "hours": {
            "type": "integer"
          },
          "minutes": {
            "type": "integer"
          },
          "total_seconds": {
            "type": "integer"
          },
          "human": {
            "type": "string",
            "description": "e.g. \"in 12 days, 5 hours\"."
          }
        }
      },
      "get": "https://epochcalc.com/api/v1/days_until"
    }
  ]
}