Skip to content

Scheduling Frequency

Tasks can run on a recurring schedule, on demand, or triggered by an external event. The schedule is set using the cron picker in the task editor — no need to write expressions by hand for common frequencies.

The schedule picker

Select a frequency from the dropdown in the Schedule tab of the task editor:

OptionDescription
UnscheduledTask only runs manually (Run Now) or via a webhook/MQTT trigger
Every N minutesRuns every 1, 5, 10, 15, 30, or 45 minutes
Every N hoursRuns every 1, 2, 4, 6, 8, or 12 hours
DailyRuns once a day — pick the time
WeeklyRuns once a week — pick the day and time
MonthlyRuns once a month — pick the day of month and time
CustomEnter a cron expression directly for anything more specific

The picker shows a plain-English preview of when the task will next run.

Custom cron expressions

For schedules not covered by the picker — e.g. "weekdays at 8am" or "first day of every month" — use the Custom option and enter a 6-part cron expression.

ApiMeld uses a 6-part format that adds a seconds field before the standard 5-part minute-to-day-of-week fields:

┌─────────── second (0-59)
│ ┌───────── minute (0-59)
│ │ ┌─────── hour (0-23)
│ │ │ ┌───── day of month (1-31)
│ │ │ │ ┌─── month (1-12 or JAN-DEC)
│ │ │ │ │ ┌─ day of week (1-7 or SUN-SAT, where 1=Sunday)
│ │ │ │ │ │
* * * * * *

Copying from cron generators

Most online cron generators produce 5-part expressions. Add a 0 at the start to use them here — e.g. 30 9 * * 1 (weekdays 9:30am) becomes 0 30 9 * * MON-FRI.

Common expressions

ScheduleExpression
Every minute0 * * * * ?
Every 5 minutes0 0/5 * * * ?
Every 15 minutes0 0/15 * * * ?
Every 30 minutes0 0/30 * * * ?
Every hour0 0 * * * ?
Every day at midnight0 0 0 * * ?
Every day at 6am0 0 6 * * ?
Every day at 9:30am0 30 9 * * ?
Weekdays at 8am0 0 8 ? * MON-FRI
Every Monday at 9am0 0 9 ? * MON
First day of month at midnight0 0 0 1 * ?
Every Sunday at 2am0 0 2 ? * SUN

Special characters

CharacterMeaning
*Every value
?No specific value (used in day-of-month or day-of-week, not both)
-Range (e.g. MON-FRI)
,List (e.g. MON,WED,FRI)
/Increment (e.g. 0/15 = every 15 starting at 0)
LLast (e.g. L in day-of-month = last day of month)
WNearest weekday to a given day of month
#Nth weekday of month (e.g. 2#1 = first Monday)

Time zone

All schedules run in UTC. Convert your local time when setting up schedules:

  • 9:00 AM EST = 14:00 UTC0 0 14 * * ?
  • 9:00 AM GMT+1 = 08:00 UTC0 0 8 * * ?

Combining schedule and triggers

A task can have a schedule and a webhook or MQTT trigger active at the same time. It runs on its schedule and can also be fired on demand via the trigger — whichever fires first starts a new run.