amato215k downloadsAuto-complete dates and times naturally (@today, @dans 20 min). Now with multilingual support and hybrid links.
This is a revived and improved version of the popular "Natural Language Dates" plugin for Obsidian. It brings the plugin back to life with a modern engine, true multilingual support, and smarter time handling.
Enable any combination in Settings → Natural Language Dates → Language settings. All examples in this README use English, but every feature below works the same way in each of these:
| Language | Status |
|---|---|
| English | Full support |
| French | Full support |
| Spanish | Full support |
| Italian | Full support |
| Russian | Full support |
| Ukrainian | Full support |
| Chinese (Traditional & Simplified) | Partially supported |
| German | Partially supported |
| Portuguese | Partially supported |
| Japanese | Full support |
| Korean | Partially supported |
| Dutch | Under development |
You can enable several languages at once — the autosuggest and parser understand all of them simultaneously.
Korean support (오늘, 내일, 다음 주 월요일, 3일 후...) reuses vocabulary from CreamNuts' nldates-obsidian-korean — many thanks for that work. As with the other "partially supported" languages, chrono-node has no Korean parser to fall back on, so some combined phrasings (e.g. a weekday together with a specific time, or date ranges) aren't recognized yet (#40).
To get updates ahead of the official release, use the BRAT plugin:
https://github.com/Amato21/nldates-revivedType @ (default trigger) followed by a natural date.
@today → [[2024-12-30]]
@tomorrow → [[2024-12-31]]
@in 20 minutes → 14:30 (smart formatting: only time when it's today!)
@in 2 hours → 16:30 (smart formatting for today)
@in 2 weeks and 3 days → [[2025-01-22]] (full date for future dates)
@next Monday at 3pm → [[2025-01-06]] 15:00
Weekday shortcuts:
@Monday → next Monday (or today if it's Monday)@this Monday → Monday of the current week (even if already elapsed)@last Monday → Monday of the previous week@next Monday → Monday of the next week@mon, @tue, @wed, @thu, @fri, @sat, @sun@3 minutes ago → 14:27 (past expressions, in every supported language)
@2 hours ago → 12:30
@from Monday to Friday → [[2025-01-06]], [[2025-01-07]], [[2025-01-08]], [[2025-01-09]], [[2025-01-10]]
@next week → [[2025-01-06]], [[2025-01-07]], [[2025-01-08]], [[2025-01-09]], [[2025-01-10]], [[2025-01-11]], [[2025-01-12]]
Complex date expressions:
@the 15th of next month → [[2025-02-15]]@last day of month → last day of the current month@last day of next month → last day of next month@first Monday of month → first Monday of the current month@first Monday of next month → first Monday of next month@last Friday of next month → last Friday of next monthnext, last, this) and their translations in every supported languageTime shortcuts: type the word for "time" in one of your enabled languages to see quick time-adjustment suggestions — @Time in English, @heure in French, and so on for each language:
Time:Now → inserts the current time (e.g. 14:30)Time:+15 minutes / Time:+1 hour → time 15 minutes / 1 hour from nowTime:-15 minutes / Time:-1 hour → time 15 minutes / 1 hour ago@Time won't trigger anything if only French is enabled, only @heure willEach suggestion in the dropdown shows a preview of the resolved date or time next to it (e.g. typing @next monday shows "Next Monday" with 2025-01-06 beside it), so you can see exactly what will be inserted before you pick one.
Press Shift + Enter to keep the original text as an alias (e.g. [[2024-12-30|today]]). If you type the full word yourself, the alias keeps your exact casing instead of the suggestion's own — handy in languages where the dictionary form is capitalized (French Demain, for instance) but you'd rather see it lowercase in your note. Only completing a partial word falls back to the suggestion's own spelling.
[[2024-12-31]]).Go to Settings > Natural Language Dates:
YYYY-MM-DD).HH:mm).@in 15 min, @in 2 hours) will display only the time (e.g., 14:30) instead of [[2024-01-15]] 14:30 (enabled by default)GGGG-[W]WW), Month format (e.g. YYYY-MM), Quarter format (e.g. YYYY-[Q]Q), Year format (e.g. YYYY)@next week, @this quarter, @Q3, @Q3 2026, @2026-W02 — uses that format instead of the daily Date format. Leave a field empty to keep using the daily format for that granularity (and, for weeks specifically, the existing behavior of inserting a link for every day of the week).@next week/@semaine prochaine/@来週/@다음 주, etc.Note: History data is stored in .obsidian/plugins/nldates-revived/history.json and is limited to the 100 most relevant entries for optimal performance.
Open (or create) a daily note from outside Obsidian — e.g. from a Shortcuts automation, a script, or another app:
obsidian://nldates?day=tomorrow&newPane=yes
day accepts any natural language expression the plugin understands. newPane (yes/no, default yes) controls whether the note opens in a new pane.
Building an integration against the plugin's TypeScript API? See API.md for the complete reference: accessing the plugin instance, all public methods and types, and usage examples.
This project stands on the shoulders of giants. Huge thanks to:
Powered by the chrono-node library.
See CHANGELOG.md for the full version history.
If npm install fails with an ENOTEMPTY rename error, remove node_modules/ and retry. If you see 403 Forbidden while fetching packages, confirm that your registry access is allowed by your network or security policy before retrying. This helps avoid stalled installs when running the project locally. Keep any local install logs out of version control.
This project is open source (MIT License). The primary goal is to provide a working, reliable tool for the Obsidian community.
Community First: If this repository becomes inactive or unmaintained in the future, please feel free to fork it and take over maintenance immediately—no permission needed! The community's needs come first, and we'd be delighted to see the project continue to evolve and improve.
Your contributions, forks, and improvements are always welcome! 🚀