Timezone convert
GET /api/timezone-convertConvert a datetime from one IANA timezone to another. Send GET /api/timezone-convert with the required fields datetime, from and to and pay $0.001 per call over x402 or MPP, or call it free by solving a proof-of-work challenge. It returns a JSON object with input, from, to and utc.
Accepts ISO 8601, Unix timestamps (seconds or milliseconds), or natural date strings. Returns the converted time in both timezones with UTC offset. ?datetime=2026-06-23T14:00:00&from=America/New_York&to=Asia/Tokyo.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
datetime | string | yes | Datetime to convert (ISO 8601, Unix timestamp, or natural date string) |
from | string | yes | Source IANA timezone (e.g. America/New_York) Also accepted as source, src, start. |
to | string | yes | Target IANA timezone (e.g. Asia/Tokyo) Also accepted as target, dest, destination, end. |
Example request
curl -i "https://agent402.tools/api/timezone-convert?datetime=2026-06-23T14%3A00%3A00&from=America%2FNew_York&to=Asia%2FTokyo"
Without payment this returns HTTP 402 Payment Required with the exact price for timezone-convert; any x402 v2 or MPP client pays it and retries.
Example response
{
"input": "2026-06-23T14:00:00",
"from": {
"timezone": "America/New_York",
"formatted": "06/23/2026, 14:00:00 EDT"
},
"to": {
"timezone": "Asia/Tokyo",
"formatted": "06/24/2026, 03:00:00 JST"
},
"utc": "2026-06-23T18:00:00.000Z"
}
| Field | Type | Always present | In the example |
|---|---|---|---|
input | string | yes | 2026-06-23T14:00:00 |
from | object | yes | 2 fields: timezone, formatted |
to | object | yes | 2 fields: timezone, formatted |
utc | string | yes | 2026-06-23T18:00:00.000Z |
From an MCP client
catalog.call {
"slug": "timezone-convert",
"params": {
"datetime": "2026-06-23T14:00:00",
"from": "America/New_York",
"to": "Asia/Tokyo"
}
}
On the hosted connector at https://agent402.tools/mcp, catalog.call runs timezone-convert free (rate-limited, no wallet). Local install: npx -y agent402-mcp.
Errors and behavior
datetime,fromandtoare required. An input the tool rejects returns an HTTP 4xx whose body carrieserror,tool,expected,requiredandexample, so the caller can correct it.- A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Free tier: no outbound network call leaves the server for this tool, so proof-of-work (16 leading zero bits of sha256) pays for it.
- A
POSTwith a JSON body to /api/timezone-convert is served as this GET, with the body as the input. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB is not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/timezone-convert?datetime=2026-06-23T14%3A00%3A00&from=America%2FNew_York&to=Asia%2FTokyo");
No wallet? Pay with compute
Fetch a challenge, solve the sha256 puzzle (16 leading zero bits, a fraction of a second of CPU), and resend with the X-Pow-Solution header:
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=timezone-convert")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/timezone-convert?datetime=2026-06-23T14%3A00%3A00&from=America%2FNew_York&to=Asia%2FTokyo", { method: "GET", headers: { "X-Pow-Solution": c.token + ":" + n } });
Part of these workflows
Timezone convert is one step in this skill pack, each sold as a single call:
- Locale brief - "Can I reach this counterparty this week?" - country facts, this year's public holidays, working days remaining this week, and what time it is there right now, in one call.
Related tools
Country info
GET /api/country-infoCountry facts by name or ISO code: official name, capital, region, currencies, languages, timezones, dialing code, TLD, …
Currency exchange rate
GET /api/fx-rateLive currency conversion using European Central Bank reference rates (via Frankfurter). Converts an amount between two c…
Epoch / ISO converter
POST /api/epoch-convertConvert between Unix epoch timestamps and ISO 8601 date strings in both directions. Provide either an epoch (seconds or …
Current time
GET /api/timeCurrent time: UTC ISO, epoch seconds/ms, day of week/year, ISO week - optionally rendered in any IANA timezone via ?tz=.
Time convert
POST /api/time-convertConvert between epoch (s or ms), ISO 8601, and any IANA timezone. Give a value (epoch seconds or milliseconds, an ISO st…
A2A Agent Card validate
POST /api/a2a-card-validateValidate an A2A (Agent2Agent protocol) Agent Card: required fields, skill shape, transport names, capability flags - spe…