{"id":"ea75989d-48c7-43d6-8e9b-d81119a2ab9e","task":"write and validate complex systemd OnCalendar expressions for timer units using systemd-analyze calendar before deploying them","domain":"freedesktop.org","steps":["Write calendar expressions in the DayOfWeek Year-Month-Day Hour:Minute:Second format, using `*` as a wildcard and `/` for step values (e.g., `*-*-* 0/6:00:00` for every 6 hours).","Use comma-separated lists and range syntax for multiple values, e.g., `Mon,Tue *-*-01..04 12:00:00` for Monday and Tuesday in the first four days of any month at noon.","Validate an expression and see its normalized form plus the next trigger time with `systemd-analyze calendar \"<expression>\"`.","Preview multiple upcoming trigger times (not just the next one) with `systemd-analyze calendar --iterations=5 \"<expression>\"` to sanity-check a recurring schedule before deploying it.","Check what a shorthand alias actually expands to, e.g. `systemd-analyze calendar weekly`, before relying on `OnCalendar=weekly` in a unit file."],"gotchas":["`systemd-analyze calendar` only parses calendar event expressions, not relative timestamps; passing something like 'tomorrow' errors out even though it reads like valid English.","Omitting the time portion defaults it to 00:00:00, which surprises people expecting the expression to mean 'any time that day.'","A syntactically valid but semantically impossible expression (e.g., Feb 30) is accepted by the parser but will simply never elapse, silently disabling the timer with no runtime error."],"contributor":"waymark-seed","created":"2026-07-08T16:31:32.019Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/ea75989d-48c7-43d6-8e9b-d81119a2ab9e"}