Cron Runner

pending

by Maxence Maireaux

Run scheduled tasks defined as markdown files with cron expressions.

Updated 3d agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Cron Runner

Schedule recurring tasks in Obsidian using simple markdown files with cron expressions.

How it works

  1. Create a folder in your vault (default: Crons/)
  2. Add markdown files with a cron schedule in the frontmatter
  3. The plugin checks every minute and runs matching jobs automatically

Cron file format

---
name: "My Scheduled Task"
cron: "0 9 * * 1-5"
enabled: true
action_type: command
action: "daily-notes"
---

# My Scheduled Task

Description of what this cron does (optional, for your reference).

Frontmatter fields

FieldRequiredDescription
cronYesStandard cron expression (minute, hour, day, month, weekday)
action_typeYesOne of: command, notice, create-note, templater, shell
actionYesThe action target (see below)
nameNoDisplay name (defaults to filename)
enabledNotrue or false (defaults to true)
output_folderNoOutput folder for create-note and templater actions
last_runAutoUpdated automatically after each execution

Cron expression syntax

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday=0)
│ │ │ │ │
* * * * *

Supports: * (any), ranges (1-5), steps (*/5), lists (1,3,5).

Action types

command

Execute any Obsidian command by its ID. You can find command IDs in Settings > Hotkeys.

action_type: command
action: "daily-notes"

notice

Display a notification inside Obsidian.

action_type: notice
action: "Time to take a break!"

create-note

Create a new note with the content specified in the action field.

action_type: create-note
action: "# Daily Standup\n\n- What I did yesterday:\n- What I'll do today:\n- Blockers:"
output_folder: "Meetings"

templater

Render a Templater template and create a new note. Requires the Templater plugin.

action_type: templater
action: "Templates/meeting.md"
output_folder: "Meetings"

shell

Execute a shell command. Desktop only. Use with caution.

action_type: shell
action: "echo 'backup' >> /tmp/cron.log"

Security warning: Shell commands run with the same permissions as Obsidian. Only use commands you trust.

Examples

Open daily note every weekday at 9am

---
name: "Open Daily Note"
cron: "0 9 * * 1-5"
enabled: true
action_type: command
action: "daily-notes"
---

Git backup every 2 hours

---
name: "Git Backup"
cron: "0 */2 * * *"
enabled: true
action_type: command
action: "obsidian-git:commit"
---

Reminder every 30 minutes

---
name: "Drink Water"
cron: "*/30 9-17 * * 1-5"
enabled: true
action_type: notice
action: "Stay hydrated! Drink some water."
---

Commands

  • Check and run due crons now — manually trigger a cron check
  • List all cron jobs — show all configured crons in a notice

Settings

SettingDefaultDescription
Cron folderCronsVault folder containing cron files
Check interval60sHow often to check for due crons (min: 10s)
Show noticestrueDisplay a notification when a cron runs
Allow shell commandsfalseEnable shell command execution (see Security section)
Debug modefalseLog debug info to the developer console

Security & Disclosures

This plugin:

  • Does not make any network requests and does not collect telemetry or analytics
  • Does not access files outside your vault, except when using the shell action type
  • Shell command execution is disabled by default and must be explicitly enabled in settings. When enabled, shell commands run with the same OS-level permissions as Obsidian. Only enable this if you fully trust the contents of your cron files. This feature requires desktop (Node.js) and is the reason the plugin is marked isDesktopOnly
  • Modifies cron files in your vault only to update the last_run frontmatter field after each execution

Installation

From Obsidian Community Plugins

  1. Open Settings > Community Plugins > Browse
  2. Search for "Cron Runner"
  3. Install and enable

Manual

  1. Download main.js and manifest.json from the latest release
  2. Create a folder .obsidian/plugins/cron-runner/ in your vault
  3. Copy the files into that folder
  4. Enable "Cron Runner" in Settings > Community Plugins

License

MIT

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.