The Day Engine: a calm, explainable read of your day — computed, not guessed

NURA's Day Engine turns raw agenda items into a glanceable understanding of the day: what you are in now, what is next, how much time is free, when to leave, and the single most useful thing to do with an open block. It is deterministic and pure — no DOM, no network, no language model. Every fact it shows is computed and testable; the model never decides urgency, a gap, or a travel time. The same functions run on the phone for a live per-second recompute and on the server to answer by voice.
The Future Window
The Day Director (dayDirector.js) resolves the day into four slots — NOW, NEXT, LATER, and PREPARE — and exactly one intelligence state that answers "what should I do right now?": Leave now, Prepare now, Focus, In progress, Overdue, Next, Later today, or Clear day. Each agenda item is classified by kind — meeting, appointment, call, focus, task, travel, personal, alarm, reminder — with sensible per-kind defaults for preparation, travel, and duration. Your explicit metadata always wins over the defaults, so your real numbers are respected. From those the engine derives a leave time (start minus travel), a prepare time (leave minus prep), and an end time.
Two rules are absolute. NURA never invents a calendar event — everything is derived from items you actually have. And a "LEAVE IN" time only appears when an item genuinely carries travel metadata; NURA never fabricates a commute.
Life Heat and explainable recommendations
A Life Heat level — calm, balanced, busy, or full — is computed from how many commitments fall in the look-ahead window and how many minutes they occupy. The engine then produces at most three recommendations, and every one carries a plain-language why: "Leave for the board review in 8 min — it's at 2:00 and needs about 15 min of travel." It flags a 45-minute-plus open block as good for focused work, warns when two commitments are back-to-back with under five minutes between them, and notices a full afternoon of three or more items between noon and 6 PM. A single calm notification surfaces only the most important of these.
Time Flow: the shape of the day
Beneath the Day Director, the Time Flow engine (timeFlow.js) understands the shape of the day. It merges overlapping commitments into clean occupied intervals, then measures the free gaps between them and classifies each — micro (under 15 min), short (under 30), useful (under 60), deep-work (under 120), or major. It marks protected windows such as quiet hours and lunch, and detects schedule risk directly from the timeline: overlap, insufficient travel between consecutive events, a missed block, leave-now and prepare-now for the next event, and overload when four or more commitments crowd the next six hours. All timing math is on absolute epoch milliseconds, and local-hour checks use the target timezone, so it is DST-safe.
The Empty Time Protector
Sometimes the right answer is rest — the day is not to be optimised to the minute. The Time Flow engine surfaces exactly one protective recommendation. In a deep-work gap during work hours it offers to protect focus time (a reversible draft that changes nothing until you confirm). After two or more back-to-back meetings it suggests a real break instead of another task. In quiet hours or at lunch it protects rest and stays quiet. A micro gap produces no suggestion at all.
AutoPilot: at most one interruption, on your terms
AutoPilot (autopilot.js) selects a single primary suggestion and governs whether it may interrupt you. In observe mode it never interrupts; in suggest mode a deterministic notification budget applies a cooldown, a daily cap, quiet-hours suppression, and a confidence gate — while a genuinely critical item (time to leave, a conflict) bypasses the budget. Dedup keys are stable across recomputes, so the same suggestion is never shown twice. When the optional AI is unavailable, AutoPilot still answers questions like "how much free time do I have?" from computed facts, never from the model.
Engineered to run every second
Because the Day tab recomputes once a second, the engine caches its Intl.DateTimeFormat instances and timezone conversions — an uncached 40-item day cost several milliseconds of pure formatter construction per tick, a visible stutter while scrolling. Caching removes the cost without changing a single character of output. The optional AI reads all of this through a get_day tool rather than reasoning about times on its own.
The Day Engine is built by NuroNova Genix Co. (Delaware; headquartered in Houston, Texas). It runs on-device with no account. The free app is coming soon to iPhone.
Get the athan, live — free
These times update every day. The NURA app keeps them live on your phone, calls the full athan at prayer time, points the Qibla, and shows it all on a living watch face — working offline, no account, no sign-in.
NURA — coming soon to iPhone