Day Dial on the iOS Home Screen
dayGLANCE 5.3.0 puts the Day Dial on the iPhone Home Screen: a large widget that draws the whole day as a ring, stays live to the minute, and rolls over at midnight without the app being opened. Everything here ships on desktop, Android and iOS unless a section says otherwise.
Day Dial widget (iOS)
- Your day as a dial, on the Home Screen. A large widget drawing the whole day as a ring: every timed block in its real colour, routines on their own track, and the hours around them. Add it from the widget gallery under dayGLANCE.
- The hub says where you are. Inside the ring sits the weekday, the date set in Lora, then the running task with its tag, how much is left and when it ends, and a teal line reading how much open time follows, shown only when the gap is half an hour or more. A block running past midnight reports its true end rather than stopping at the boundary.
- The sky ring. Sunrise, sunset and the moon are drawn at their real angles for your location, at an opacity that follows the sun's elevation, with the moon mirrored in the southern hemisphere. Without location data the ring draws unlit instead of guessing.
- Live between refreshes. The countdown keeps moving rather than sitting still until the next timeline entry. On iOS 18 and later it counts down by the minute; earlier iOS shows a relative countdown, which ticks seconds under the last hour.
- Every iPad size too. The face scales from one set of spec coordinates to every large-widget size iOS and iPadOS hand out, down to iPad mini's 306pt square. At that floor the dial is a glance rather than a read, but nothing clips or misdraws.
- Tinted and clear Home Screens. A separate monochrome face is drawn for the tinted and accented modes, and for the clear mode on iOS 26, instead of letting the system flatten the colour face into something unreadable.
- It states what it does not know. Placeholder, no-data, outdated and time-zone-changed each have their own face and their own line in the hub, so a widget that has lost touch says so instead of quietly showing yesterday.
- Tap through to the day it is drawing, and one VoiceOver summary reads the day rather than announcing a hundred unlabelled shapes.
- Location has its own block on phones, under Settings, where phones actually look for it. It is the place the dial and its widget work the sun, the moon and the hourly weather out from. On tablets, Weather keeps that job in both orientations.
Key tasks
- Star the few tasks you mean to move forward today. A star in LIST, shown read-only in GLANCE and surfaced in the date header, with a quiet note when a day carries more than three of them. It is a nudge rather than a limit.
- A star belongs to the day, not the task. dayGLANCE already has P1 to P3, and this deliberately does not touch it. Priority is a property of the task; a star is a property of today. Reschedule a starred task and the star falls away, because whether it deserves one on the new date is a fresh decision.
Schedule history
- See where a task was first planned. A task that has moved shows its original plan beside where it now sits, with a badge on SCHED and LIST cards.
- And how often it has slipped. A deferral count, which counts being pushed back after a task came due and not the ordinary work of laying out tomorrow morning. A task that keeps sliding wants breaking up, dropping, or scheduling honestly, and the number is there to say so.
- The stops it actually made. Recent moves are listed newest first, so the count has somewhere to point.
WEEK
- An end hour, to match the start hour. The toggle hangs at the foot of the last row, and the view says how many tasks fall outside the range it is drawing rather than hiding them silently.
Home-screen widgets
- They change day on their own. The snapshot now carries today and the next three days, so a widget rolls over at midnight without the app being opened. iOS gets a midnight entry per day, Android an exact alarm where the system allows one.
- An honest stale state. All seven widgets say when what they are showing has gone out of date, rather than presenting yesterday as today. The label carries the time the snapshot was actually taken, and from two days on, its age. The Day Dial inherits it.
- Dragging a block no longer thrashes the widgets. A resize writes state at every 15-minute step of the drag, and each step was reloading them. They now update once, when you let go.
Everywhere
- Timed calendar events no longer import as all-day. All-day detection matched
VALUE=DATEas a substring, which also matchesVALUE=DATE-TIME, valid syntax meaning the exact opposite. Feeds that tag timed events explicitly had every one of them flattened, and because the recurrence expansion then wrote a bare date per occurrence, a whole series lost its time of day rather than just the first event. - WEEK and SCHED load device events for every day they draw. The fetch covered the selected day plus two either side, which was assumed to contain every view except MONTH and did not. WEEK lost whichever columns fell outside the radius, so which day went missing depended on where in the week the selection sat and it read as intermittent. SCHED was worse: its rolling fortnight was blank past day three. The window is now the union of the radius and the spans a mounted view is actually drawing.
- The 24-hour preference is applied as the locale's hour cycle, so clock labels follow it consistently instead of each surface deciding for itself.
- hyperGLANCE is no longer squashed to its borders by the PLANNER's flex body.
- Desktop date navigation stays clear of the weather and the action buttons, with the header chevrons holding still while long date labels shrink. Contributed by Lcub3d.
Desktop
- Voice input without an AI provider. Turning AI off used to take voice input with it. Dictation on the Mac now runs through Apple's own speech recognition, driven by a signed helper that ships inside the app, and the AI toggle means what it says: use AI for voice, not allow voice at all. No audio reaches an AI provider. Apple uses its on-device model where that model is installed and its own recognition service otherwise, exactly as dictation does elsewhere on the Mac. Chromium's recogniser, by contrast, streams audio to a cloud service the packaged app cannot reach, which is why voice never worked in the desktop build without a provider.
Assistant integration
- Routines are visible to the assistant. Routine blocks and today's routines are on the read surface, the consent copy discloses them, and day occupancy is unified so frame availability is no longer routine-blind.
- Frames, with their free time, are on the read surface too.
- A write that lands on a routine is refused, not moved. Scheduling, creating, moving and resizing now return a typed
routine_conflicterror naming the routine and its span. The app slides a dropped task past a routine because a person watching it land takes that as feedback; a model that asked for 10:00 and got a success will tell you it scheduled 10:00, and the silent shift only surfaces when you next look at the timeline. There is no force flag, deliberately, because the app offers no gesture that drops a task onto a routine either. Task-on-task overlap stays legal, exactly as in the UI. - ChatGPT is supported, and the setup instructions say so.
Languages
- Roadmap, task menu and reminder actions are translated. Contributed by Lcub3d.
- Microphone and speech errors are no longer English-only.
- Italian ordinals follow the rules Italian actually selects for the 8th and the 11th.
- Simplified Chinese gets the
oneplural form its strings need.
Experimental
- JOBO, plan versus actual, is seated as a sixth desktop view on key 6, behind a new Experimental section in Settings. Off by default, and a view that is off is as absent as if it did not exist: it leaves the switcher, the number keys, the C cycle and the default-view picker. It lands in slices, and this is the first.
Under the hood
- The Day Dial's geometry is a pure Swift package held to the same exported JSON vectors the web dial is tested against, so the two faces cannot drift. CI compiles the widget and runs the geometry tests.
- A full reset now knows every IndexedDB database the app opens. Two were missing, the vault sync snapshot and the Todoist cache, and both survived a reset on iOS. Neither is user data, so nothing was lost, but a stale sync baseline outliving a reset is exactly what a reset exists to prevent. A test now walks the source for every database name and fails on the first one the list does not know.
- The README has been rewritten, and all 21 screenshots regenerated from the real demo seed rather than partly by hand.
- The Obsidian bridge plugin is unchanged and stays at 0.9.1.
- 5.2.2 was tagged but never published, and is skipped rather than reused.