datefinder
Extract datetime objects from natural language text
Decision gist · record as of 2026-08-14
Yes, if you need to extract dates from unstructured text. The package is actively maintained, has no known vulnerabilities, and supports current Python versions. Install friction is moderate due to Rust compilation on unsupported platforms, but prebuilt wheels cover common targets. The MIT license is permissive. Consider it essential for document processing, log analysis, or data normalization tasks involving natural language dates.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9+.
- If a prebuilt wheel is unavailable for your platform, pip will build from source and requires a Rust toolchain.
- Medium install friction due to Rust compilation requirement when prebuilt wheels are unavailable.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use this package freely in commercial and private projects with minimal restrictions.
last release 2026-03-25 (142 days) · last repo commit 2026-03-25 · 664 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 4,546,158 downloads/mo, #2,284 on PyPI
Alternatives
Verify before relying
pip install datefinder
import datefinder
from datetime import datetime, timezone
text = "Meeting tomorrow; launch on 2024-11-03 18:00 UTC."
ref = datetime(2026, 3, 19, 12, 0, tzinfo=timezone.utc)
for match in datefinder.find_dates(text, base_date=ref):
print(match)- Accuracy and coverage of date extraction compared to alternatives like dateparser or Duckling
- Performance characteristics on very large documents or high-volume batch processing
- Behavior differences between v2 (default) and legacy engines for edge cases in your use case
What it is and what it does
Datefinder is a Python date parser designed to extract date and time expressions from unstructured text. It handles explicit calendar dates (e.g., "January 4th, 2017" or "2024-11-03 18:00"), relative expressions ("tomorrow", "in 3 days"), and multiple date formats in a single pass. The package provides two main APIs: a compatibility layer that returns datetime objects, and a modern typed API that returns match objects with kind, text span, confidence, and structured values.
The package is useful for processing emails, contracts, logs, scraped HTML, and other mixed-format documents where dates are embedded in natural language. It includes a command-line interface for shell pipelines and supports anchoring relative date parsing to a reference date. As of version 1.0.0, the default engine uses a v2 compatibility implementation backed by Rust, with the original engine available as a fallback.
Use it for
- Extract dates from email threads, support tickets, or conversation logs to organize or filter by date
- Parse contract or legal document dates to identify key deadlines and effective dates
- Find and normalize dates in scraped web content or mixed-format reports for data pipeline ingestion
- Process relative date expressions in user input (e.g., "due tomorrow") anchored to a specific reference date
- Migrate legacy date extraction code by using find_dates_legacy() for parity, then switching to the modern API
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to extract dates from unstructured text.
The package is actively maintained, has no known vulnerabilities, and supports current Python versions. Install friction is moderate due to Rust compilation on unsupported platforms, but prebuilt wheels cover common targets. The MIT license is permissive. Consider it essential for document processing, log analysis, or data normalization tasks involving natural language dates.
Install
datefinder on PyPI
Before you install
Medium install friction due to Rust compilation requirement when prebuilt wheels are unavailable. The package is actively maintained with recent releases and provides prebuilt wheels for common platforms (Linux glibc/musl, macOS, Windows). Requires Python 3.9+.
Requires Python 3.9+. If a prebuilt wheel is unavailable for your platform, pip will build from source and requires a Rust toolchain.
License in practice
MIT license is permissive; you can use this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install datefinder
import datefinder
from datetime import datetime, timezone
text = "Meeting tomorrow; launch on 2024-11-03 18:00 UTC."
ref = datetime(2026, 3, 19, 12, 0, tzinfo=timezone.utc)
for match in datefinder.find_dates(text, base_date=ref):
print(match)
Verify before relying
- Accuracy and coverage of date extraction compared to alternatives like dateparser or Duckling
- Performance characteristics on very large documents or high-volume batch processing
- Behavior differences between v2 (default) and legacy engines for edge cases in your use case
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesregexpython-dateutilpytz |
| Maintenance | Actively maintained 142 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,546,158 / month, #2,284 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9 |
Evidence: datefinder-1.0.0-cp39-abi3-macosx_10_12_x86_64.whl; datefinder-1.0.0-cp39-abi3-macosx_11_0_arm64.whl; datefinder-1.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; datefinder-1.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; datefinder-1.0.0-cp39-abi3-musllinux_1_2_aarch64.whl; datefinder-1.0.0-cp39-abi3-musllinux_1_2_x86_64.whl; datefinder-1.0.0-cp39-abi3-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “extract dates from text”
- datefinderDatefinder extracts date and time expressions from unstructured text…
- commonregexExtracts dates, times, emails, phone numbers, links, IP addresses,…
- dateparserParses dates from text in multiple languages and formats, handling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
RapidFuzz provides fast fuzzy string matching using Levenshtein Distance and related metrics, implemented mostly in C++ with Python bindings for rapid similarity scoring and approximate string matching.
Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
See also commonregex · dateparser · date-spacy · ctparse · parsedatetime · timelib · htmldate · date-guesser · nr-date · dateformat