Unix timestamps, DST-aware time zone conversion, durations, cron schedules, and holiday countdowns
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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".
Unix timestamp. Values >= 1e11 are treated as milliseconds unless unit is set.
Interpretation of timestamp. Default auto.
IANA time zone, e.g. "America/New_York". Defaults to UTC.
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".
| Argument | Type | Description |
|---|---|---|
| unit | string | Interpretation of timestamp. Default auto. |
| timezone | string | IANA time zone, e.g. "America/New_York". Defaults to UTC. |
| timestamp* | number | Unix timestamp. Values >= 1e11 are treated as milliseconds unless unit is set. |
{
"type": "object",
"required": [
"timestamp"
],
"properties": {
"unit": {
"enum": [
"auto",
"seconds",
"milliseconds"
],
"type": "string",
"description": "Interpretation of timestamp. Default auto."
},
"timezone": {
"type": "string",
"description": "IANA time zone, e.g. \"America/New_York\". Defaults to UTC."
},
"timestamp": {
"type": "number",
"description": "Unix timestamp. Values >= 1e11 are treated as milliseconds unless unit is set."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| datetime* | string | ISO 8601 date/time, e.g. "2026-09-06T09:30". If it has no offset it is read as wall time in from_timezone. |
| to_timezone* | string | Target IANA zone, e.g. "Europe/London". |
| from_timezone* | string | Source IANA zone, e.g. "Asia/Tokyo". |
{
"type": "object",
"required": [
"datetime",
"from_timezone",
"to_timezone"
],
"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."
},
"to_timezone": {
"type": "string",
"description": "Target IANA zone, e.g. \"Europe/London\"."
},
"from_timezone": {
"type": "string",
"description": "Source IANA zone, e.g. \"Asia/Tokyo\"."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| from | string | Start evaluating after this date/time (ISO 8601). Defaults to now. |
| count | integer | How many upcoming runs to return. Default 5. |
| timezone | string | Zone the schedule is evaluated in. Defaults to UTC. |
| expression* | string | Cron expression, e.g. "0 9 * * 1-5". |
{
"type": "object",
"required": [
"expression"
],
"properties": {
"from": {
"type": "string",
"description": "Start evaluating after this date/time (ISO 8601). Defaults to now."
},
"count": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many upcoming runs to return. Default 5."
},
"timezone": {
"type": "string",
"description": "Zone the schedule is evaluated in. Defaults to UTC."
},
"expression": {
"type": "string",
"description": "Cron expression, e.g. \"0 9 * * 1-5\"."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| end* | string | End date/time (ISO 8601 or Unix timestamp). |
| start* | string | Start date/time (ISO 8601 or Unix timestamp). |
| timezone | string | IANA time zone, e.g. "America/New_York". Defaults to UTC. |
| include_end | boolean | Count the end date as a full day (adds one day). Default false. |
{
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "End date/time (ISO 8601 or Unix timestamp)."
},
"start": {
"type": "string",
"description": "Start 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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | A target date (YYYY-MM-DD) or date-time (ISO 8601) instead of an event. |
| event | string | Event slug from the known list, e.g. "christmas". |
| timezone | string | Zone whose midnight starts the target day. Defaults to UTC. |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "A target date (YYYY-MM-DD) or date-time (ISO 8601) instead of an event."
},
"event": {
"type": "string",
"description": "Event slug from the known list, e.g. \"christmas\"."
},
"timezone": {
"type": "string",
"description": "Zone whose midnight starts the target day. Defaults to UTC."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| add | object | Units to add. |
| subtract | object | Units to subtract. |
| timezone | string | Zone in which calendar units (months, days across DST) are applied. Defaults to UTC. |
| timestamp | number | Base Unix timestamp (seconds or milliseconds, auto-detected). Omit for now. |
{
"type": "object",
"properties": {
"add": {
"type": "object",
"properties": {
"days": {
"type": "number"
},
"hours": {
"type": "number"
},
"weeks": {
"type": "number"
},
"years": {
"type": "number"
},
"months": {
"type": "number"
},
"minutes": {
"type": "number"
},
"seconds": {
"type": "number"
}
},
"description": "Units to add.",
"additionalProperties": false
},
"subtract": {
"type": "object",
"properties": {
"days": {
"type": "number"
},
"hours": {
"type": "number"
},
"weeks": {
"type": "number"
},
"years": {
"type": "number"
},
"months": {
"type": "number"
},
"minutes": {
"type": "number"
},
"seconds": {
"type": "number"
}
},
"description": "Units to subtract.",
"additionalProperties": false
},
"timezone": {
"type": "string",
"description": "Zone in which calendar units (months, days across DST) are applied. Defaults to UTC."
},
"timestamp": {
"type": "number",
"description": "Base Unix timestamp (seconds or milliseconds, auto-detected). Omit for now."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| input* | string | The date/time text to parse. |
| timezone | string | Zone to assume when the input carries no offset, and to report the result in. Defaults to UTC. |
{
"type": "object",
"required": [
"input"
],
"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."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| timezone | string | IANA time zone, e.g. "America/New_York". Defaults to UTC. |
{
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "IANA time zone, e.g. \"America/New_York\". Defaults to UTC."
}
},
"additionalProperties": false
}