Sume schedule cron: why @weekly and 6-field cron are rejected

Sume schedules take only standard 5-field cron. Macros like @weekly and 6-field expressions with seconds are rejected, so convert them before you create one.

3 min readSume
All posts

Which cron syntax does a Sume schedule accept?

Exactly five fields: minute, hour, day of month, month, day of week. Sume's validation in its cron code rejects @ macros such as @weekly and @daily, and it rejects expressions with six or more fields, which is the form some tools use to add seconds at the front. The expression is evaluated in the IANA timezone you give the action.

If you paste a cron from another scheduler, count the fields first. A six-field 0 0 9 * * 1 is not Monday 9am here; it is an error.

How do I convert the common forms?

Drop the seconds field and spell the macro out. Seconds precision does not exist on a schedule anyway, because the smallest unit is a minute.

Conversions to 5-field cron, read 2026-10-04.
You haveUse insteadMeaning
@daily0 0 * * *Midnight every day
@weekly0 0 * * 0Midnight on Sunday
@monthly0 0 1 * *Midnight on the 1st
0 0 9 * * 10 9 * * 1Monday 09:00, seconds dropped

Can I check an expression before I create the action?

Yes, with the same parser Sume uses. The sample below counts fields and refuses macros, which catches the two rejected shapes before you reach the app.

def check_cron(expr: str) -> str:
    expr = expr.strip()
    if expr.startswith("@"):
        raise ValueError("macros like @weekly are not accepted")
    fields = expr.split()
    if len(fields) != 5:
        raise ValueError(f"need 5 fields, got {len(fields)}")
    return " ".join(fields)

for e in ("0 9 * * 1", "@weekly", "0 0 9 * * 1"):
    try:
        print(e, "->", check_cron(e))
    except ValueError as err:
        print(e, "->", err)

What else is fixed when I create the action?

The trigger type is chosen at creation and does not change afterward, and the API cannot create or edit schedules, so you set them in the app. A scheduled action defaults to a $1.00 spend cap and skips a slot when the last run is still active.

A basic five-field check is not full validation: it will not catch 99 99 * * *. Let Sume's own validation have the last word and read any error it returns.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume