Appearance
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:
| Option | Description |
|---|---|
| Unscheduled | Task only runs manually (Run Now) or via a webhook/MQTT trigger |
| Every N minutes | Runs every 1, 5, 10, 15, 30, or 45 minutes |
| Every N hours | Runs every 1, 2, 4, 6, 8, or 12 hours |
| Daily | Runs once a day — pick the time |
| Weekly | Runs once a week — pick the day and time |
| Monthly | Runs once a month — pick the day of month and time |
| Custom | Enter 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
| Schedule | Expression |
|---|---|
| Every minute | 0 * * * * ? |
| Every 5 minutes | 0 0/5 * * * ? |
| Every 15 minutes | 0 0/15 * * * ? |
| Every 30 minutes | 0 0/30 * * * ? |
| Every hour | 0 0 * * * ? |
| Every day at midnight | 0 0 0 * * ? |
| Every day at 6am | 0 0 6 * * ? |
| Every day at 9:30am | 0 30 9 * * ? |
| Weekdays at 8am | 0 0 8 ? * MON-FRI |
| Every Monday at 9am | 0 0 9 ? * MON |
| First day of month at midnight | 0 0 0 1 * ? |
| Every Sunday at 2am | 0 0 2 ? * SUN |
Special characters
| Character | Meaning |
|---|---|
* | 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) |
L | Last (e.g. L in day-of-month = last day of month) |
W | Nearest 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 UTC→0 0 14 * * ?9:00 AM GMT+1=08:00 UTC→0 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.