## What it is
timefuzz resolves human phrases like "sometime next week", "the Tuesday after my birthday", or "end of Q3" into concrete datetimes or ranges — each with a confidence score, so your app knows when to ask the user to confirm. Rust core, thin Python API, shipped as compiled wheels (pip install timefuzz, no Rust toolchain required).
## Why another date parser
Existing parsers like dateparser handle "in 3 days" and "next Friday" but fall over on the interesting cases:
- Ranges and vagueness — "sometime next week" is a span, not an instant.
- Anchored relatives — "the Tuesday after my birthday" needs a user-supplied anchor date.
- Business calendars — "end of Q3", "next business day", "the 2nd Monday of March", "10 business days after the invoice date".
- Honest ambiguity — "next weekend" said on a Wednesday has two defensible readings; timefuzz returns both instead of silently guessing.
## What it returns
Every parse yields an Instant, an inclusive Range, or an Ambiguous set of candidates — each carrying a deterministic confidence score and the interpretation the parser chose, so schedulers, reminder apps, and chat bots can decide when to double-check. If nothing matches, ParseError is raised with the reason.
## Try it
timefuzz is on PyPI — pip install timefuzz. Point it at a phrase with an optional reference now plus anchor dates, then match on the result shape. The README carries the full grammar reference and a cookbook.