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.

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.
| You have | Use instead | Meaning |
|---|---|---|
@daily | 0 0 * * * | Midnight every day |
@weekly | 0 0 * * 0 | Midnight on Sunday |
@monthly | 0 0 1 * * | Midnight on the 1st |
0 0 9 * * 1 | 0 9 * * 1 | Monday 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
- Wall of text or Video Hook: which Fastlane Format for a doorbuster?
Use sume-wall-of-text when the offer itself is the ad and sume-video-hook when the first seconds must stop the scroll. Both deliver a Blitz, not Seedance.
- Weekly content calendar as JSON: a Sume Format output schema
Bind a JSON Schema to a Sume Format run and get a seven-day content calendar back as validated JSON, with real dates, enums and media references.
- Image types a Sume Format run accepts: JPEG, PNG, WebP, GIF, AVIF
A Format run accepts five image types, 30 files and 500 MB in total. Convert HEIC and TIFF first, and prefer public HTTPS URLs over asset ids.
- Worst-case spend of a 100-item Sume bulk queue and its spend caps
Each bulk item can carry its own spend cap up to $500, and caps are not clamped to the Format cap. Do the worst-case math before you submit.
Written by Sume