Chrono is a natural language date parser in JavaScript that extracts date and time information from unstructured text.
The tool solves the problem of parsing human-readable date expressions without requiring users to format dates in a specific way. It handles relative references like "today," "tomorrow," "last Friday," and "5 days ago," as well as absolute dates in various formats and date ranges. The parser works by applying locale-specific parsing rules and refinement logic to identify date components within arbitrary text, then reconstructing them into structured date objects with reference date awareness.
Chrono suits projects that need to extract dates from user input, chat messages, or other natural language sources. It works best when you can specify a reference date and timezone context, which allows the parser to correctly interpret relative expressions. The tool supports multiple languages including English, French, Japanese, Russian, and others, though the default configuration handles only international English. For strict parsing of formal date patterns only, the tool offers a strict mode configuration. Developers should note that the project was rewritten in TypeScript in version 2, with a new parser and refiner interface, though the previous version remains supported.
The project maintains active test coverage tracking and demonstrates consistent development activity. The codebase is organized by locale with parsers and refiners grouped under locale directories, making it straightforward to add language support or customize parsing behavior. The tool provides fine-grained control through options like forward-date assumptions and custom timezone mappings, allowing integration into systems with specific parsing requirements.