Skip to main content
Integration & Workflows

Obsidian Recurring Tasks: Complete Guide

TaskForge supports recurring tasks in two powerful formats: Markdown and TaskNotes. Each format offers unique advantages for different workflows. This guide explains how both work, their key differences, and when to use each one.

Why Does TaskForge Support Two Recurrence Formats?

TaskForge offers two distinct approaches to recurring tasks, each optimized for different use cases:

Markdown Format

Perfect for simple recurring tasks in your daily notes and project files. Uses natural language and creates new task instances on completion. Great for tasks that need a visible history.

TaskNotes Format

Ideal for detailed recurring workflows with one task per file. Uses RRULE format in YAML frontmatter and tracks completions in a complete_instances array. Perfect for tasks requiring rich metadata and consistent scheduling.

What Are the Key Differences Between Formats?

Feature Markdown TaskNotes
Configuration Natural language with 🔁 emoji RRULE format in YAML frontmatter
Completion Tracking Status changes to "done" complete_instances array (status unchanged)
Instance Creation Creates new task on completion Updates in-place (same task)
Basis Date Auto-determined (Due > Scheduled > Start) Always uses scheduled date
Due Date Offset Not maintained Maintained (default: enabled)
Uncomplete Behavior Changes status back (new instance remains) Removes from complete_instances, rolls back date
COUNT Limits 🔢 emoji with number or position/total COUNT parameter in RRULE
Best For Simple recurring tasks, visible history Detailed workflows, rich metadata

How Do I Get Started with Recurring Task Templates?

Markdown Format

Add recurring tasks directly in your markdown files using natural language:

- [ ] Review weekly goals 🔁 every Monday 📅 2025-11-10
- [ ] Water plants 🔁 every 3 days ⏳ 2025-11-10
- [ ] Pay rent 🔁 every month on the 1st 📅 2025-12-01
- [ ] Backup files 🔁 every week when done 🛫 2025-11-10
- [ ] Team standup 🔁 every weekday 📅 2025-11-10
- [ ] Quarterly review 🔁 every 3 months 🔢 4 📅 2025-12-01

TaskNotes Format

Create one-task-per-file with YAML frontmatter for detailed recurring workflows:

---
title: Review weekly goals
status: todo
scheduled: 2025-11-10
due: 2025-11-10 17:00
recurrence: FREQ=WEEKLY;BYDAY=MO
tags:
  - work
  - review
complete_instances: []
---

## Notes
Review progress on all active projects.

New to TaskNotes? Check out our TaskNotes Integration Guide to learn about the one-task-per-file format and YAML frontmatter basics.

How Does Recurrence Work in TaskForge?

Understanding how TaskForge calculates the next occurrence is crucial for both formats. The key concept is the basis date, the date that gets advanced when you complete a recurring task.

Markdown: Automatic Basis Determination

Markdown tasks automatically determine the basis date using precedence rules:

Precedence: Due Date > Scheduled Date > Start Date

If present, the due date becomes the basis. Otherwise, scheduled date is used. Start date is only used if neither due nor scheduled are present.

TaskNotes: Always Scheduled Date

TaskNotes recurring tasks always use the scheduled date as the basis for recurrence calculation. This provides consistent, predictable behavior regardless of other date fields.

The scheduled date is required for TaskNotes recurring tasks. When you complete a task, TaskForge adds the completion date to the complete_instances array, calculates the next occurrence from the scheduled date, and updates the scheduled date to the next uncompleted occurrence.

How Does Completion Tracking Work?

The two formats take fundamentally different approaches to tracking task completion.

Markdown: New Instance on Completion

When you complete a markdown recurring task, the original task's status changes to "done" and a new task instance is created with the next occurrence date, inserted after the original in your file.

Creates a visible history of completed tasks in your file, perfect for tracking progress over time.

TaskNotes: Complete Instances Array

When you complete a TaskNotes recurring task, the completion date is added to the complete_instances array, the status field never changes, and the scheduled date advances to the next uncompleted occurrence. DTSTART is automatically added to the recurrence on first completion.

Maintains a single task file with complete history in the complete_instances array. Status never changes, so the task always appears in your todo list.

When Should I Use Each Format?

Use Markdown When:

  • You want a visible history of completed tasks in your files
  • You prefer natural language over RRULE syntax
  • You need completion-based recurrence
  • You're working with daily notes or project files

Use TaskNotes When:

  • You want a single task file with complete history
  • You need rich metadata
  • You want to maintain due date offsets automatically
  • You prefer the one-task-per-file organization

What Recurrence Patterns Does TaskForge Support?

TaskForge supports a wide range of recurrence patterns across both Markdown and TaskNotes formats. Whether you need simple daily habits or complex scheduling rules, there is a pattern that fits your workflow.

Daily Patterns

Daily recurrence covers tasks that repeat every day or every few days. You can set a task to repeat every day, every N days (such as every 3 days), or every weekday. The weekday option skips Saturdays and Sundays, making it perfect for work routines.

Weekly Patterns

Weekly patterns let you repeat tasks on specific days of the week. You can use every week, every N weeks, every Monday, or combine multiple days like every Monday, Wednesday, and Friday. You can also specify any combination of weekdays to match your schedule exactly.

Monthly Patterns

Monthly recurrence gives you precise control over which day of the month a task repeats. Options include every month, every N months, on a specific date like the 1st or 15th, on the last day of the month, on a relative weekday like the 2nd Tuesday, or on multiple days like the 1st and 15th.

Yearly Patterns

Yearly patterns are useful for annual events and reviews. You can set a task to repeat every year, every N years, or in specific months. These are ideal for annual reviews, birthday reminders, or seasonal tasks that happen at the same time each year.

Completion-Based Patterns

Completion-based recurrence calculates the next occurrence from the date you actually finish the task, not from the original due date. Use phrases like "when done" or "after completion" in Markdown format. This is especially useful for tasks where the gap between occurrences matters more than hitting a fixed schedule, such as replacing a water filter every 90 days after the last replacement.

Count Limits and End Dates

You can limit how many times a task repeats by adding a count. In Markdown format, use the count emoji followed by a number to set the total number of occurrences. In TaskNotes, use the COUNT parameter in your RRULE. You can also set an end date so the task stops recurring after a specific date. These options are helpful for time-limited projects or tasks that only need to happen a fixed number of times.

Nth Weekday Patterns

For tasks that fall on a relative day of the month, TaskForge supports nth weekday patterns. You can schedule tasks for the first Monday, last Friday, second Tuesday of every month, or any similar combination. This pattern is commonly used for recurring meetings, monthly reviews, or any event tied to a position within the month rather than a fixed date.

Ready to Learn More?

Explore these related guides to master TaskForge:

Both formats share the same recurrence engine under the hood, so scheduling behaves the same way no matter which format you choose. And you're never locked in, you can mix both formats in the same vault and migrate between them as your needs evolve. Explore all recurrence features or visit our help center for setup assistance.

Azhar Dewji
Azhar Dewji · · Updated March 14, 2026

Software engineer with 10+ years of experience building mobile and desktop apps in Swift, Kotlin, and Flutter. Indie developer based in Toronto, Canada. Creator of TaskForge. Learn more