Skip to main content

Cron

The Cron trigger starts a workflow on a time-based schedule. Instead of waiting for an external event, the workflow runs automatically at the times you define — hourly, daily, weekly, monthly, or on a fully custom cron expression. It is the right trigger for any recurring, unattended job: polling a partner API for new data, generating a scheduled report, sweeping a directory, or reconciling records on a fixed cadence.

Overview

Use the Cron trigger when you need to:

  • Run work on a fixed schedule - Daily status updates, weekly reports, monthly invoice runs
  • Poll external systems - Periodically pull data from an API or FTP location that has no push/webhook option
  • Perform housekeeping - Archive files, expire stale records, recompute aggregates
  • Batch accumulated work - Process everything queued since the last run
All times are UTC

Cron schedules are evaluated in UTC. There is no per-workflow timezone setting — when you enter 8:00, the workflow fires at 08:00 UTC. Convert your local time to UTC when configuring a schedule (for example, 8:00 AM US-Eastern during daylight time is 12:00 UTC). Because the schedule is fixed to UTC, runs do not shift with daylight-saving transitions.

Configuration

Trigger Times

A Cron trigger holds a list of one or more trigger times. Each time fires independently, so a single Cron node can run a workflow at several points in the day or week — click Add Time to add another entry.

Each entry has a Mode that controls how the rest of its fields behave:

ModeFiresFields used
Every HourOnce an hour, at the chosen minuteMinute
Every Day (default)Once a day, at the chosen hour and minuteHour, Minute
Every WeekOnce a week, on the chosen weekday at the chosen timeWeekday, Hour, Minute
Every MonthOnce a month, on the chosen day of month at the chosen timeDay of Month, Hour, Minute
CustomWhenever the cron expression matchesCron Expression

Fields

  • Hour - Hour of the day in 24-hour format, 023 (UTC). Hidden for Every Hour and Custom.
  • Minute - Minute of the hour, 059. Hidden for Custom.
  • Day of Month - Day of the month, 131. Shown only for Every Month.
  • Weekday - Day of the week. Shown only for Every Week (Monday through Sunday).
  • Cron Expression - A six-field cron expression. Shown only for Custom.

Custom Cron Expressions

Choose Custom mode when the simple modes can't express your schedule (multiple times per day, specific date ranges, every N minutes, weekday-only runs, and so on). The expression uses six fields:

┌───────────── second        (0 - 59)
│ ┌─────────── minute (0 - 59)
│ │ ┌───────── hour (0 - 23)
│ │ │ ┌─────── day of month (1 - 31)
│ │ │ │ ┌───── month (0 - 11, Jan - Dec)
│ │ │ │ │ ┌─── day of week (0 - 6, Sun - Sat)
│ │ │ │ │ │
* * * * * *

Note the leading seconds field. This is a six-field expression — the first field is seconds, not minutes. A standard five-field crontab expression will be off by one position if pasted directly.

Examples

GoalExpression
Every day at 14:30 UTC0 30 14 * * *
Every 15 minutes0 */15 * * * *
Top of every hour0 0 * * * *
Every weekday at 09:00 UTC0 0 9 * * 1-5
First day of every month at 00:00 UTC0 0 0 1 * *
Every 30 seconds*/30 * * * * *

Output

The Cron trigger emits a single output keyed by the trigger node's name. The trigger carries no inbound payload — there is no caller and no body — so downstream nodes use a Cron run to initiate work (query a database, call an API, list a directory) rather than to consume incoming data.

If you need the current time inside the workflow, generate it in a downstream node (for example, a Set or Code node) rather than expecting it on the trigger output.

Example Usage & Common Use Cases

Daily Operations Report

Mode: Every Day
Hour: 12 (08:00 US-Eastern in summer)
Minute: 0

[Cron] → [HTTP Request: query metrics] → [Spreadsheet: build report] → [Send Email: management]

Hourly Inventory Sync

Mode: Every Hour
Minute: 5

[Cron] → [HTTP Request: pull inventory] → [Loop: rows] → [Update system of record]

Weekly Partner File Pickup

Mode: Every Week
Weekday: Monday
Hour: 6
Minute: 0

[Cron] → [FTP: list new files] → [If: files exist] → [FTP: download] → [Process]

Every 15 Minutes (Custom)

Mode: Custom
Cron Expression: 0 */15 * * * *

[Cron] → [HTTP Request: check for new orders] → [Branch on result]

Multiple Times Per Day

Add several trigger times to one Cron node — for example, an Every Day entry at 13:00 and another at 21:00 to run the same workflow twice daily.

Best Practices

  • Think in UTC - Always convert your intended local time to UTC before entering it. Remember that fixed-UTC schedules do not follow daylight-saving shifts, so a job pinned to local business hours may need a seasonal adjustment.
  • Stagger heavy jobs - Avoid scheduling many workflows at exactly 00:00; spread them across the hour to smooth load on the systems you call.
  • Make runs idempotent - A scheduled job may occasionally overlap with a long previous run or be retried. Design downstream logic so re-processing the same window is safe.
  • Poll only when there is no push option - If the source system can call a Webhook, prefer that over frequent polling; reserve Cron for sources that can't notify you.
  • Pick the simplest mode that works - Use Every Day / Every Week / Every Month for human-readable schedules and reserve Custom cron expressions for schedules the simple modes can't express.

Troubleshooting

Common Issues

  • Workflow ran an hour earlier/later than expected - The schedule is UTC, not local time. Re-derive the UTC equivalent of your intended time; check whether daylight saving has shifted your local offset relative to the fixed UTC schedule.
  • Custom expression never fires (or fires constantly) - Confirm you accounted for the leading seconds field. A five-field crontab pattern is misaligned in this six-field format.
  • Nothing runs at all - Confirm the workflow is active. Inactive workflows are not scheduled.
  • Job fired more than once - Verify there is only one trigger time configured for that moment; multiple entries that resolve to the same minute will each fire.

Debugging Tips

  • Start with a frequent schedule while testing - A */2 * * * * *-style expression (every 2 minutes) confirms the trigger works, then dial it back to the real cadence.
  • Check execution history - The workflow's run history shows each scheduled execution and its timestamp, which you can compare against the configured UTC time.
  • Webhook - Event-driven alternative for sources that can push data to Splice
  • Trigger Nodes - Overview of all available workflow trigger types