# DateMint by Harlo > DateMint turns natural-language dates and times ("next Friday at 3pm", "in 2 weeks", "Dec 25 to Jan 2") into exact ISO 8601 timestamps in any IANA time zone, DST-aware, relative to a reference time you choose. It also extracts every date mention from a block of text with character offsets, normalizes mixed timestamps (ISO 8601, RFC 2822, Unix s/ms/us/ns, slash dates) to UTC, and returns the current time in a zone. Use it before acting on any date a user typed. Free use needs no key: about 10 calls per minute per IP (REST calls and MCP tools/call), no monthly cap. Rule-based parsing (chrono-node), not an AI model: it reads common date and time phrases and can miss or misread unusual wording, so check results before booking anything that matters. English (en, en-GB) is the most complete; other locales cover common phrases only. Numeric dates like 03/04/2026 are flagged ambiguous (en reads month/day, en-GB day/month). A date with no stated time gets an implied time (time_stated false). Time-zone abbreviations such as CST or IST are ambiguous; pass an IANA timezone instead. resolve reads its text whole; extract scans long text in overlapping pieces (240 characters plus 64 before and 96 after), so a date that crosses a piece boundary is read like any other, except one longer than about 96 characters, which may be split. Runs of more than 64 characters without spaces (URLs, hashes, tokens; Chinese and Japanese characters do not count), runs of more than 16 Chinese numerals, and the middle of a run of 7 or more standalone 1-2 digit numbers ("1 2 3 4 5 6 7"; the first and last 3 are still read) are skipped without changing the dates next to them, and a run of more than 8 spaces or line breaks ends a phrase. Extract returns at most max_results dates (default 20, maximum 25; larger values are rejected with HTTP 400) and stops once that many are found (truncated true, truncated_reason "max_results"). In number-dense text (tables, long lists of figures) it also stops scanning once roughly 600 numbers have been read (truncated true, truncated_reason "number_budget"): the dates it returns are correct, but dates later in the text are not returned, and raising max_results does not change that; send the rest of the text in a separate request. truncated_reason is null when truncated is false. Years 1900-2200. No holiday or business-day calendars. Stateless: text is not stored or logged; no URL fetching. ## Endpoints - POST https://datemint.mike-tusa.workers.dev/v1/resolve: Turn one date/time phrase ("next Friday at 3pm", "in 2 weeks", "tomorrow 9am EST", "Dec 25 to Jan 2") into exact ISO 8601 UTC and local timestamps in an IANA zone, with precision, which parts were stated, DST gap/fold flags and ambiguity flags. found:false when no date is recognized. Use before acting on any date a user typed. - POST https://datemint.mike-tusa.workers.dev/v1/extract: Find every date/time mention in a text (max 4 KB) and return each with its character index, matched text and resolved ISO timestamps (start and optional end of ranges). - POST https://datemint.mike-tusa.workers.dev/v1/normalize: Convert up to 100 mixed timestamps (ISO 8601, RFC 2822, Unix seconds/ms/us/ns, slash dates, short date phrases) to UTC and local ISO 8601, flagging ambiguous day/month order. - GET|POST https://datemint.mike-tusa.workers.dev/v1/now: Current date, time, weekday, UTC offset, ISO week and day of year in an IANA time zone. Useful because models do not know today's date. - GET https://datemint.mike-tusa.workers.dev/v1/info: Supported locales, size caps and limits. - POST https://datemint.mike-tusa.workers.dev/mcp: remote MCP server, Streamable HTTP, JSON responses (tools: resolve_date, extract_dates, normalize_timestamps, current_time) - GET https://datemint.mike-tusa.workers.dev/openapi.json ## Example curl -s https://datemint.mike-tusa.workers.dev/v1/resolve -H 'content-type: application/json' -d '{"text":"next Friday at 3pm","timezone":"America/Denver"}' ## Limits and plans No key: about 10 requests/min per IP (REST and MCP tools/call), no monthly cap. Over the limit: HTTP 429 with retry-after 60 (MCP: isError result). Plans: Free $0 · no key, about 10 requests/min per IP, no monthly cap; Basic $5/mo · 25,000 calls/mo; Pro $15/mo · 250,000 calls/mo. ## Honest limits Rule-based parsing (chrono-node), not an AI model: it reads common date and time phrases and can miss or misread unusual wording, so check results before booking anything that matters. English (en, en-GB) is the most complete; other locales cover common phrases only. Numeric dates like 03/04/2026 are flagged ambiguous (en reads month/day, en-GB day/month). A date with no stated time gets an implied time (time_stated false). Time-zone abbreviations such as CST or IST are ambiguous; pass an IANA timezone instead. resolve reads its text whole; extract scans long text in overlapping pieces (240 characters plus 64 before and 96 after), so a date that crosses a piece boundary is read like any other, except one longer than about 96 characters, which may be split. Runs of more than 64 characters without spaces (URLs, hashes, tokens; Chinese and Japanese characters do not count), runs of more than 16 Chinese numerals, and the middle of a run of 7 or more standalone 1-2 digit numbers ("1 2 3 4 5 6 7"; the first and last 3 are still read) are skipped without changing the dates next to them, and a run of more than 8 spaces or line breaks ends a phrase. Extract returns at most max_results dates (default 20, maximum 25; larger values are rejected with HTTP 400) and stops once that many are found (truncated true, truncated_reason "max_results"). In number-dense text (tables, long lists of figures) it also stops scanning once roughly 600 numbers have been read (truncated true, truncated_reason "number_budget"): the dates it returns are correct, but dates later in the text are not returned, and raising max_results does not change that; send the rest of the text in a separate request. truncated_reason is null when truncated is false. Years 1900-2200. No holiday or business-day calendars. Stateless: text is not stored or logged; no URL fetching. Brand: Harlo. Privacy: https://datemint.mike-tusa.workers.dev/privacy. Support: digitalpromohub.support@gmail.com