- 🔁 Automatic Recurrence: Automatically create next task instance when completing recurring tasks
- 📦 Smart Archiving: Archive completed tasks in organized dated folders
- 🔍 Fuzzy Matching: Tolerant of typos in recurrence rules (e.g., "weakly" → "weekly")
- 🌐 Bilingual Support: Full support for English and Persian (Farsi)
- ⚙️ Highly Customizable:
- Custom field names
- Flexible date formats
- Configurable archive paths
- Editable recurrence rules
- 🛡️ Safe & Reliable:
- Race condition protection
- Data validation
- Error handling with detailed notifications
- 🎯 Flexible Scheduling:
- Daily, Weekly, Monthly, Yearly
- Custom intervals (e.g., every 2 weeks, every 4 months)
- Easy to add your own rules
- Open Obsidian Settings
- Navigate to Community Plugins
- Click Browse and search for "Recurring Task Archiver"
- Click Install then Enable
- Download the latest release from GitHub Releases
- Extract
main.js
,manifest.json
, andstyles.css
to:<your-vault>/.obsidian/plugins/recurring-task-archiver/
- Reload Obsidian
- Enable the plugin in Settings → Community Plugins
Create a template file (e.g., Templates/Task.md
):
---
completed: false
archived: false
due: 2025-01-15
recurrence: Weekly
created: 2025-01-08
---
# Task Title
## 🎯 Goal
- Your main objective here
## ✅ Subtasks
- [ ] First subtask
- [ ] Second subtask
## 📝 Notes
Your notes here...
- Use your template to create a task
- Fill in the details:
completed
: Set tofalse
initiallydue
: Set the due date (format:YYYY-MM-DD
)recurrence
: Choose from:None
(هیچ)Daily
(هر روز)Weekly
(هر هفته)Every 2 Weeks
(هر 2 هفته)Monthly
(هر ماه)Every 4 Months
(هر 4 ماه)Yearly
(هر سال)
Example:
---
completed: false
archived: false
due: 2025-01-15
recurrence: Weekly
created: 2025-01-08
---
# 📅 Weekly Review
## 🎯 Goal
- Review past week and plan next week
## ✅ Subtasks
- [ ] Review calendar
- [ ] Check completed tasks
- [ ] Plan next week priorities
When you finish the task:
- Change
completed: false
tocompleted: true
- Save the file
- A modal will appear asking:
- "✅ Yes, Recur & Archive": Creates next instance and archives current
- "📦 No, Just Archive": Only archives without creating next instance
- "❌ Cancel": Do nothing
What happens automatically:
- ✅ New task created for next week (2025-01-22)
- 📦 Current task marked as
archived: true
- 📁 Current task moved to
Archive/Tasks/2025/01/
- 🔄 Subtasks in new task are unchecked (if enabled in settings)
Navigate to Settings → Recurring Task Archiver to customize:
- Switch between English and فارسی
Edit or create custom recurrence rules:
- Amount: Number of units to add
- Unit: day, week, month, or year
- Enable/Disable: Toggle rules on/off
Example: Create "Every 3 Days" rule:
- Amount:
3
- Unit:
day(s)
- Template File Path: Your task template location
- Default:
Templates/Task.md
- Default:
- Archive Folder Path: Where completed tasks go
- Default:
Archive/Tasks
- Default:
- Use Dated Folders: Organize by date (recommended)
- Creates:
Archive/Tasks/2025/01/
- Creates:
- Date Format for Folders: Customize folder structure
- Default:
YYYY/MM
- Options:
YYYY
,YYYY-MM
,YYYY/MM/DD
, etc.
- Default:
- Confirm Before Recurring: Show confirmation modal
- ✅ Recommended for safety
- Copy Subtasks: Copy checkboxes to new task
- All subtasks will be unchecked in new task
- Date Format: Format for due dates
- Default:
YYYY-MM-DD
- Supports:
DD/MM/YYYY
,MM-DD-YYYY
, etc.
- Default:
- Debounce Delay: Delay before processing (ms)
- Default:
1000
(1 second) - Prevents multiple triggers on quick saves
- Default:
- Max Concurrent Processing: Simultaneous task limit
- Default:
3
- Range: 1-10
- Default:
Customize field names to match your workflow:
- Completed Field: Default
completed
- Archived Field: Default
archived
- Due Date Field: Default
due
- Recurrence Field: Default
recurrence
- Created Field: Default
created
Example with custom fields:
---
status: done # instead of completed
isArchived: false # instead of archived
deadline: 2025-01-15 # instead of due
repeat: Weekly # instead of recurrence
dateCreated: 2025-01-08 # instead of created
---
Then in settings, set:
- Completed Field →
status
- Archived Field →
isArchived
- Due Date Field →
deadline
- etc.
---
completed: false
recurrence: Daily
due: 2025-01-15
---
# 💪 Morning Exercise
- [ ] 10 push-ups
- [ ] 5 minutes meditation
---
completed: false
recurrence: Weekly
due: 2025-01-17
---
# 📊 Weekly Review
- [ ] Review accomplishments
- [ ] Plan next week
- [ ] Update goals
---
completed: false
recurrence: Monthly
due: 2025-01-30
---
# 💰 Pay Rent
- [ ] Transfer money
- [ ] Save receipt
---
completed: false
recurrence: Every 4 Months
due: 2025-04-01
---
# 📈 Quarterly Business Review
- [ ] Analyze metrics
- [ ] Write report
- [ ] Present findings
This plugin works standalone, but pairs well with:
- Metadata Menu: Visual interface for editing frontmatter
- Makes changing
completed
field easier - Dropdown menus for recurrence selection
- Makes changing
- Templater: Advanced template system
- Dynamic date insertion
- Auto-fill fields
- Dataview: Query and display tasks
- Create task dashboards
- Track completion rates
- Calendar: Visual calendar view
- See due dates at a glance
- Tasks: Advanced task management
- Filter by recurrence
- Group by due date
Note: This plugin does NOT require any other plugins to function!
Solution:
- Enable Debug Logging in settings
- Check Developer Console (
Ctrl+Shift+I
orCmd+Option+I
) - Look for errors
- Ensure:
- Field name matches settings (case-sensitive)
completed
is set totrue
(boolean, not string)recurrence
field has valid value
Solution:
- Check Date Format in Advanced Settings
- Ensure it matches your preferred format
- Plugin supports multiple formats automatically:
YYYY-MM-DD
(default)DD/MM/YYYY
MM-DD-YYYY
- etc.
Solution:
- Check Archive Folder Path in settings
- Verify path exists or plugin will create it
- Check Use Dated Folders toggle
- Verify Date Format for Folders matches your preference
Solution:
- Plugin uses fuzzy matching
- Handles typos: "weakly" → "weekly"
- Accepts English and Persian labels
- Case-insensitive
- If still not working:
- Check spelling in frontmatter
- Verify rule is enabled in settings
- Try exact match:
Daily
,Weekly
, etc.
Solution:
- Increase Debounce Delay in Advanced Settings
- Default: 1000ms (1 second)
- Try: 2000ms or higher if issue persists
- ✅ 100% Local: All processing happens on your device
- ✅ No Cloud: No data sent to external servers
- ✅ No Tracking: No analytics or telemetry
- ✅ Open Source: Code is fully auditable
Contributions are welcome! Here's how:
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
# Clone the repository
git clone https://github.com/WASP-Outis/recurring-task-archiver.git
cd recurring-task-archiver
# Install dependencies
npm install
# Start development build (watches for changes)
npm run dev
# Build for production
npm run build
- 🎉 Initial release
- ✅ Automatic task recurrence
- 📦 Smart archiving with dated folders
- 🔍 Fuzzy matching for recurrence rules
- 🌐 Bilingual support (English/Persian)
- ⚙️ Fully customizable settings
- 🛡️ Race condition protection
- 🎯 Flexible date format support
MIT License - see LICENSE file for details
Shahryar Sahebekhtiari
- GitHub: @WASP-Outis
- Email: Sh1380se@gmail.com
If you find this plugin useful:
- ⭐ Star this repository
- 🐛 Report bugs via Issues
- 💡 Suggest features