Periodic Links
unlistedby David V. Kimball
Automatically link between periodic notes with natural language.
Periodic Links
Automatically link between periodic notes with natural language.
Features
- Natural Language Linking: Type phrases like "tomorrow", "next week", "last month", etc. and automatically create links to the corresponding periodic notes
- Smart Detection: Only works in periodic notes themselves, intelligently detecting note types based on filename format
- Immediate Note Creation: Creates notes with proper templates and folder structure applied
- Written Number Support: Supports phrases like "in two weeks", "three months ago"
- Weekday-Specific Phrases: "next Thursday", "2 Sundays from now", "last Tuesday"
- Compatible with Core Plugins: Works with Obsidian's core Daily Notes plugin and the Periodic Notes community plugin
- Format Agnostic: Adapts to your configured date formats for daily, weekly, monthly, quarterly, and yearly notes
How It Works
When you're editing a periodic note, typing natural language phrases will automatically create links:
- Daily notes:
yesterday,tomorrow,2 days ago,in 3 days - Weekly notes:
last week,next week,this week,2 weeks ago - Monthly notes:
last month,next month,in 2 months - Quarterly notes:
last quarter,next quarter,Q1 2025 - Yearly notes:
last year,next year,2025
Installation
From Obsidian Community Plugins
- Open Settings → Community plugins
- Browse and search for "Periodic Links"
- Install and enable the plugin
Manual Installation
- Download the latest release
- Extract files to
VaultFolder/.obsidian/plugins/periodic-links/ - Reload Obsidian and enable the plugin
Requirements
- Obsidian v1.11.0 or higher
- Daily Notes core plugin or Periodic Notes community plugin must be configured
Settings
Note Creation Mode
Choose how links to non-existing notes are handled:
- Create notes immediately (recommended): Creates notes with templates applied
- Create links to non-existing notes: Creates wiki links (templates won't apply)
Natural Language Settings
- Enable natural language: Master toggle for all phrase recognition
- Enable written numbers: Support phrases like "in two weeks"
- Enable extended phrases: Support relative phrases like "3 days ago"
Work Scope
Control where natural language parsing works:
- Only in current periodic note type (recommended): Phrases work within the same periodic note type (daily notes stay daily, weekly notes stay weekly, etc.)
- Across all periodic note types: Allows cross-type linking (e.g., "tomorrow" in a yearly note creates a daily note link)
- In any file: Works everywhere (uses current date as reference)
Note: When a phrase doesn't align with the current periodic note type, it falls back to using the current date/time as the reference point rather than the note's context.
Strict Folder Check
When enabled, requires notes to match both format AND folder location for stricter validation.
Usage Examples
Basic Phrases
yesterday,tomorrow→ Daily noteslast week,next week,this week→ Weekly noteslast month,next month,this month→ Monthly noteslast quarter,next quarter,this quarter→ Quarterly noteslast year,next year,this year→ Yearly notes
Extended Phrases
2 days ago,in 3 days→ Relative daily notes5 weeks ago,in 2 weeks→ Relative weekly notes3 months ago,in 6 months→ Relative monthly notes2 quarters ago,in 1 quarter→ Relative quarterly notes5 years ago,in 10 years→ Relative yearly notes
Written Numbers
in two days,three weeks ago,five months from nowin eighteen years,twenty quarters ago
Weekday-Specific
next Thursday,last Tuesday→ Next/previous occurrence of weekday2 Sundays from now,three Mondays ago→ Nth occurrence of weekdayin 2 Fridays,in three Mondays→ Nth occurrence of weekday (future only)- All weekday patterns support both singular (
Friday) and plural (Fridays) forms
Context-Aware
The plugin detects your current note type and creates appropriate links within the same periodic hierarchy:
- In a daily note:
tomorrowcreates another daily note link - In a weekly note:
next weekcreates another weekly note link - In a monthly note:
next monthcreates another monthly note link - In a yearly note:
next yearcreates another yearly note link
Note: With default settings, phrases maintain the same periodic note type. If a phrase doesn't fit the current context (e.g., "next week" in a yearly note), it uses the current date/time as reference.
Compatibility
- ✅ Daily Notes (core plugin)
- ✅ Periodic Notes (community plugin)
- ✅ Calendar plugin weekly notes
- ✅ Custom date formats
- ✅ Folder-based organization
Troubleshooting
Phrases not working?
- Ensure you're editing a periodic note (daily, weekly, monthly, quarterly, or yearly)
- Check that the corresponding periodic note type is enabled in your settings
- Type a space or punctuation after the phrase to trigger linking
- Verify "Enable natural language" is turned on in plugin settings
Wrong dates being linked?
- Check your periodic notes format settings match your actual note filenames
- The plugin detects note types by filename format (e.g.,
2026-01-22.mdfor daily notes) - Use "Strict folder check" if you organize notes in specific folders
Templates not applying?
- Use "Create notes immediately" mode for proper template application
- "Create links to non-existing notes" mode won't apply templates
Performance issues?
- The plugin uses debounced processing (150ms delay) to avoid lag during typing
- If you experience issues, try disabling other plugins temporarily
Contributing
This plugin is developed with AI assistance using the OpenSkills system. See AGENTS.md for development guidance.
Credits
Inspired by and compatible with:
- Periodic Notes - Core periodic note functionality
- Auto Periodic Notes - Automatic note creation
- Memos Sync - Integration patterns
- Repeat Plugin - Spaced repetition concepts
Support
- Issues: GitHub Issues
- Funding: Patreon
License
MIT License - see LICENSE file for details.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.