DEV Community

Pirate Prentice
Pirate Prentice

Posted on

How to run n8n workflows on a schedule (cron, daily, weekly — with free JSON)

Most n8n tutorials show you how to trigger a workflow from a webhook or button click. But some of the most useful automations run on their own — every morning, every Monday, the first of the month. No webhook needed. No human in the loop.

Here's how to set that up in n8n with the Schedule Trigger node.


The Schedule Trigger node

In n8n, the node you want is called Schedule Trigger (you might also see it called "Cron" in older versions). It has zero inputs and fires your workflow automatically at whatever interval you configure.

To add it:

  1. Open a new workflow in n8n
  2. Click + Add node
  3. Search for Schedule Trigger
  4. Select it as your workflow's starting node

Setting the interval

The node gives you several modes:

Every X minutes / hours
Good for monitoring tasks: check a Slack channel every 15 minutes, ping an API every hour to look for updates.

Every day at a specific time
The most common setup. Example: send a daily summary email at 8 AM every weekday.

Every week on a specific day
Good for reports: generate a weekly CSV every Monday at 9 AM.

Every month on a specific day
Good for billing checks, monthly digests, first-of-month resets.

Custom cron expression
If you need fine-grained control: 0 8 * * 1-5 runs at 8 AM Monday through Friday. n8n accepts standard 5-field cron syntax.


Real example: Daily digest email

Here's a simple pattern that runs every morning at 8 AM and sends you a summary email:

Schedule Trigger (every day at 08:00)
  → HTTP Request (fetch your data)
  → Set (format the data)
  → Send Email (Gmail or SMTP)
Enter fullscreen mode Exit fullscreen mode

The workflow fires automatically. You wake up to a digest without touching anything.


Real example: Weekly Slack report

Schedule Trigger (every Monday at 09:00)
  → Google Sheets (pull last week's rows)
  → Code node (calculate totals)
  → Slack (post to #reports)
Enter fullscreen mode Exit fullscreen mode

Free workflow JSON (copy-paste ready)

Here's a minimal Schedule Trigger → Send Email workflow you can import directly into n8n:

{
  "name": "Daily Schedule → Email",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [{ "field": "hours", "hoursInterval": 24 }],
          "triggerAtHour": 8
        }
      },
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [240, 300]
    },
    {
      "parameters": {
        "fromEmail": "you@example.com",
        "toEmail": "you@example.com",
        "subject": "Daily digest",
        "text": "Workflow ran at {{ $now.toISO() }}"
      },
      "name": "Send Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [460, 300]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [[{ "node": "Send Email", "type": "main", "index": 0 }]]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

To import: In n8n → workflow list → Import from clipboard → paste.


Timezone gotcha

n8n runs in the timezone of your server. After setting up your Schedule Trigger, check the Next execution preview. If it shows the wrong time, fix your server timezone or use a UTC cron expression adjusted manually.


Want more pre-built workflows?

The n8n Workflow Starter Pack includes production-ready workflow JSONs — Stripe receipt automation, lead-capture-to-CRM, and form-to-Sheets — all documented and import-ready.

👉 Get the Starter Pack ($29)


Questions? Drop them in the comments — I reply same day.

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.