Scheduled tables and self-growing dates
A daily report with no gaps needs a date table that grows by itself. What datetime's real signature is (two arguments, seconds, minimum 3600), the fact that it does not work in the current desktop build, what to do instead, and where the scheduler stops on the desktop.
The problem
Summarising by day, a day with no orders simply does not appear in the summary — the group values come from the detail, and the detail has no row for that day. Daily reports, attendance and inspection rounds all need "a row for every day, even if it is zero".
datetime: a date column that grows itself
In the first column (the index column) of a new table, write:
datetime("2026-01-01 00:00:00", 86400)
Two arguments. The in-app function help puts it plainly — Datetime: generate a time record at regular intervals from the start time to the current time:
- Start time, as a timestamp.
"2018-10-05 00:00:00"starts at midnight that day. Seconds are ignored when it computes, so8:05:30is treated as8:05:00. - Interval, in seconds.
3600is an hour,86400a day. The minimum is 3600 — anything smaller is treated as 3600, so one row a minute is not possible.
It generates from the start time up to now, one row per interval, and tomorrow there is one more row. That is the "scheduled table": nothing to import, the engine advances it with the clock.
datetime does not appear in the Formulas list under the time category, and its function help carries only the name with no description — the signature above comes from the data engine's own function documentation. Tested on a clean macOS 0.0.9 instance on 2026-09-03: with that formula on the index column, the table still had 0 rows two minutes later. This does not work in the current desktop build. Read what follows as the design intent, not as a recipe. If you genuinely need a gap-free date table today, build the date column yourself and import it (drag a date series in Excel, then Import → Upload file) — the effect is the same, you just have to top it up now and then.
Hanging data off it
With the skeleton in place, the remaining columns pull the detail in with conditional aggregates:
AC2 = countif(AA2, AC1 = AA9) orders that day (AA9 is the detail's date column, normalised to the same format first)
AC3 = sumif(AA6, AC1 = AA9) amount that day
AC4 = if(AC2 = 0, "no data", "") a day with nothing still has a row, and can say so
Build a line chart on that table and put it on a dashboard, and the curve is continuous instead of breaking wherever a day had no data.
Time-driven automations
Data Arrival Time is a scheduled job in disguise: the engine checks the date column on a clock. Paired with a datetime table you get periodic actions such as "every day at nine" — the table grows a row each day, and the new row fires a Data Added automation.
Scheduling on the desktop
- Advancing a scheduled sequence and firing time triggers are both the engine scheduler's work. Nothing advances while the app is closed. On reopening, the sequence catches up to now, but automations that should have fired in between are not re-fired.
- Desktop builds before 0.0.7 had a bug: the scheduler's cron was configured for the year 2099, so scheduled work never ran once. Fixed in 0.0.7 (it is in the changelog). The scheduler is genuinely on in the current build — the engine is configured with
jarvis.resource.task.scheduler.cron=*/1 * * * * *, a tick a second — so the test above says thedatetimepath itself is not working, not that the scheduler is asleep. - The team edition's engine is in the cloud and advances around the clock.