Your devices sync with each other again.
- Changes made on one device weren’t reaching the others. Removing the launch pop-up in v4.7 also removed the only thing that ever downloaded from Drive, so a device could back up perfectly and still never receive anything. Two devices could each back up and stay permanently out of step. Fixed.
- “Back up now” only ever uploaded. It pushed this device’s copy over whatever was in Drive without reading it first — so pressing it on both devices made them overwrite each other instead of merging. It now downloads, merges, then uploads the combined result, and is called Sync now.
- A device with nothing to send was never offered a sync. The prompt only appeared when you had unsaved changes, so the device that was merely behind stayed silent forever. It now offers a one-tap sync once per session.
- The prompt now distinguishes the two cases: “Changes aren’t backed up yet” when your own edits are waiting, and “Not synced with your other devices yet” when you’re simply behind. Dismiss it and it stays dismissed for that session.
- After one tap, both directions keep syncing automatically for the next hour, as before.
No more Google pop-up flashing when you open the app.
- The Google window that appeared and vanished on every launch is gone. Roughly ten seconds after opening CoreOS, a Google pop-up would flash open and close itself. It was the app quietly asking Google for a fresh access pass so it could check your backup — and Google only ever hands one over in a visible window. CoreOS no longer asks in the background at all, so opening the app is silent.
- Backing up now works in sessions. Access passes from Google last about an hour and are never saved to your device, so a reopened app starts without one. Tap Resume backup once and everything — your waiting changes and any edits from your other devices — syncs, then keeps syncing automatically for the next hour.
- You are only asked when something is actually waiting. Open CoreOS to read or plan and nothing appears. The bar only shows up when you have changes that aren't backed up yet, so it means something when you see it.
- Clearer wording. The old message said your Google sign-in had expired, which sent people to check their account. Nothing has expired and nothing is wrong — it is simply how Google's browser security works, and the app now says so.
- Resume backup syncs immediately rather than waiting for the next cycle, and Back up now and Restore work on a freshly opened app.
- Switching Google accounts no longer risks leaving edits behind — the final backup to the old account is now guaranteed to run before the handover.
Your real Google Calendar, both ways — and the time-zone rejection is gone for good.
- Sync your actual Google calendars. Until now CoreOS could only ever see a calendar it had created itself — your personal, work and shared calendars were invisible to it by design, which is why your events never showed up. CoreOS can now read and write every calendar on your Google account.
- Pick which calendars to follow. Connecting shows your calendars with a tick box each. Follow as many as you like; each one keeps its own place in the sync, so a busy calendar never slows a quiet one down.
- Choose where new events go. One calendar is nominated as the publish target, and events you create in CoreOS appear there in Google.
- Calendars shared with you read-only — holidays, a team calendar, a partner’s schedule — are pulled in and shown, and never written to.
- “Missing time zone definition for start time” is gone. v4.6.8 attached a time zone, but a single missing or unusable value could still bring the error back. Every timed event now carries both the exact UTC offset and the zone name, so Google has no way left to be unsure what time you meant.
- Events created in another time zone showed the wrong hour. A 1 pm meeting made in New York used to read as 1 pm here instead of the correct local time — and pushing it back then moved it in Google. Times pulled from Google are now converted properly to your device’s clock.
- Repeating events lost their final day. A series set to end on the 31st stopped on the 30th for anyone east of London. The end of a series is now the whole of that day, wherever you are.
- Sync could quietly stop finding new events. The follow-up request to Google didn’t match the first one, which Google explicitly warns leads to undefined results. Both requests are now identical, so changes keep flowing.
- An expired sync marker pulled nothing at all. When Google retired the marker that tracks your place, CoreOS was meant to re-read everything, but a loop bug made it stop immediately and sync nothing that round. It now does the full re-read straight away.
- Events with no end time, or an end before the start, were rejected by Google. They are now sent as one hour long, matching how CoreOS already displays them.
- When Google refuses an event, the exact request is now recorded in the browser console alongside the reason, so a stubborn event can actually be diagnosed.
- One bad calendar no longer stops the others. A calendar that has been deleted or unshared is reported and skipped; the rest sync normally.
- Demo data and JSON imports are never uploaded. Only events on a calendar you have linked are published, so loading the demo workspace can’t reach your real Google Calendar.
- Existing setups are carried over automatically — the calendar CoreOS made for you keeps its events and stays your publish target.
Timed events now sync to Google Calendar, and one stuck event no longer blocks the rest.
- Events with a time wouldn’t sync. Google rejected them with “Missing time zone definition for start time”, because CoreOS was sending the time without saying which time zone it was in. It now attaches your device’s time zone (all-day events were never affected). This is why a 1–2 pm event refused to go up while an all-day event synced fine.
- One problem event no longer wedges the whole sync. A single event Google wouldn’t accept used to stop the entire sync in its tracks — so nothing after it went up, and events created in Google didn’t come down. Now every other event syncs normally and only the problem one waits, with the exact reason shown.
- Events created in Google now reliably appear here. Because a mid-sync failure previously threw away work that had already been done, changes pulled from Google could fail to save. Every sync now saves and refreshes what it managed to do, even if part of it didn’t finish.
When calendar sync fails, it now tells you why.
- “Couldn’t reach Google Calendar” said nothing useful. Google replies with a precise reason when something is wrong with the setup, and CoreOS was throwing it away in favour of a generic message. It now shows the actual problem and what to do — for example that the Calendar API still needs switching on for the project, that the sign-in didn’t include calendar permission, or that Google is rate-limiting the app.
- Missing calendar permission is caught immediately. If the calendar box is left unticked on Google’s consent screen, connecting used to appear to work and then fail confusingly on the first sync. It now says so at once.
- The full response from Google is also written to the browser console, so a setup problem can be pinned down in seconds.
Two-way Google Calendar sync — optional, one calendar per workspace, and it can never touch your other calendars.
- Sync a workspace with Google Calendar, both ways. On the Calendar page, press Connect Calendar. CoreOS makes a calendar of its own in your Google account — “CoreOS — <workspace>” — and from then on events flow in both directions. Create an event on your phone's Google Calendar, press Sync, and it's here; edit it here, press Sync, and it's there.
- It cannot see your other calendars. CoreOS asks only for calendars it created itself. Your personal, work and shared calendars aren't merely left alone — the permission CoreOS holds cannot reach them at all. It's the same principle as the backup, which lives in a hidden folder that can't see the rest of your Drive.
- One calendar per workspace, and you choose the account each time. A “Work” workspace can sync to a work Google account while “Personal” uses another. Bindings travel with your backup, so a second device already knows which calendar a workspace belongs to.
- Tag anything that comes in from Google. An imported event is an ordinary CoreOS event: link it to Spaces and Contacts as usual. Those links stay on your device — Google never sees them — and they survive every future sync, even when the event is edited in Google.
- Deleting works both ways. Remove an event in either place and it goes from both. If the same event changed in both places since the last sync, the most recent edit wins — the same rule your backup already uses.
- A Full resync button for the rare case where the two sides have drifted, e.g. after restoring an old backup. It re-reads everything and compares afresh; it never deletes.
- Sync happens when you ask. There's no background syncing, by design: CoreOS runs entirely on your device with no server listening for changes, and a silent timer talking to Google is exactly what caused the repeating pop-ups fixed in 4.6.4. Press Sync and it syncs.
- Repeat patterns and skipped dates now carry across. If you remove a single occurrence from a repeating event, that stays removed on both sides instead of quietly reappearing.
- Workspaces created after the app was open were missing a calendar record. Harmless until now, but it would have stopped a newly made workspace from ever linking a calendar.
A full sweep of the app, and the fixes that came out of it.
- The Enter key works everywhere now. In the New workspace, New folder, Link page and Apply tags dialogs, typing a name and pressing Enter did nothing at all — the dialog just sat there and you had to reach for the button. Enter now saves in every dialog, the same way it always has for tasks, follow-ups, spaces, contacts and events.
- Repeating events keep their pattern. A series set to something like the second Tuesday or the last Friday of each month described itself internally as a plain day-of-the-month rule. Nothing you'd have seen yet, but it would have quietly reshaped those series later on — it now records the pattern exactly.
- Demo data now matches real data. Contacts loaded from Load demo data were missing a couple of internal fields until the next reload filled them in.
- Checked end to end. Every screen, dialog and button was exercised in a browser this release — repeat-event scheduling across daily, weekly, monthly and yearly patterns, backup merging, CSV import, undo/redo, workspace separation, and the sign-in limits. No other faults surfaced.
Finishes the job v4.6.3 started: an already-connected device no longer gets asked to choose a Google account while you're working.
- “Choose an account” no longer interrupts you. When CoreOS quietly renewed its Drive permission in the background, it never told Google which account to renew for. On a device signed in to several Google accounts, Google can't guess — so instead of renewing silently it opened the account picker. CoreOS now always names your linked backup account, and the renewal happens invisibly.
- A pop-up every ten minutes is also gone. If a background renewal can't complete, CoreOS now stops asking entirely and simply tells you, instead of retrying on a timer. Previously it retried every ten minutes — and every retry could open another Google window.
- Nothing pops up on launch either. The “don't ask again” state is now remembered, so reopening the app can no longer trigger a fresh Google window.
- A clear “backups are paused” notice. If your Google sign-in does expire on a device, a small dismissible bar appears above your work with a Reconnect button — one tap and backups resume where they left off. You're never gated, never locked out, and never left guessing whether your data is being saved.
Stops Google windows from popping up over and over while you work.
- No more repeating Google pop-ups. Your permission to reach Drive expires about once an hour. If it couldn't renew quietly in the background — most often because that browser isn't signed in to Google — CoreOS kept retrying every few seconds, and each retry opened another Google window. It now tries quietly at most once every ten minutes, and never opens a window on its own.
- A calm way back. When the connection does need your attention, CoreOS simply says so in Data → Google Drive backup with a Reconnect button. One tap, and backups pick up exactly where they left off — you're never interrupted mid-work or locked out.
Fixes being asked to connect Google Drive over and over, even after you'd already connected it.
- “Connect Google Drive” kept coming back. If Google approved your account but the very first backup couldn't complete — a brief network drop, a slow response from Drive — CoreOS didn't record the connection, so it asked you to connect again on every launch, on every device. Your device now counts as connected the moment Google approves it.
- A hiccup can no longer lock you out. Because backup is required, a failed first sync used to leave you stuck on the connect screen with no way through to your own work. Now you go straight into your workspace and CoreOS quietly finishes the sync in the background.
- Still no data loss. Until that first sync completes, CoreOS always merges with whatever is already in your Drive before saving anything new — so a device that hasn't caught up yet can never overwrite a good backup.
Switching your backup account is now a Settings-only action — so it can never happen from a device that doesn't have your workspace yet.
- Switch accounts from Settings only. Changing your linked Google account now lives in one place: Data → Google Drive backup → Switch account, available once your Drive is connected. The sign-in screens on a new device no longer offer it.
- New devices connect first, switch later. When you sign in somewhere new, CoreOS asks only for the Google account your workspace already lives in. Once your data has loaded onto that device, you can switch accounts from Settings — in that order, nothing is ever left behind.
- Switching keeps both sides. If the account you switch to already has a CoreOS backup, it's now merged with your current workspace instead of being replaced — and CoreOS saves one last copy to your old account before moving, so both copies are complete.
Move your backup to a different Google account whenever you like — in one flow, with only ever one account linked.
- Switch your Google Drive account. Changed which Google account you want to back up to? Open Data → Google Drive backup → Switch account, pick the new account, and CoreOS moves your workspace there in one step. Your account still links to exactly one Google Drive at a time.
- Switch from any device. On a new phone or computer, the reconnect screen now also offers “Use a different Google account” — so you can change your backup account from there too, not only from Settings.
- Nothing is deleted behind your back. When you switch, your previous backup simply stays in the old account's Drive until you choose to remove it — CoreOS never reaches in and deletes it for you.
Signing in on a new phone or computer now reconnects your backup in one tap — and your account can only ever back up to one Google Drive.
- Fast reconnect on a new device. If your account already backs up to Google Drive, a new phone or computer no longer walks you through setup again. It greets you with “Reconnect your backup” with your Google account already filled in — you approve once and your workspace loads straight away.
- No questions asked. Reconnecting an empty device restores your workspace automatically; a device that already has work on it merges instead. The choose-a-copy screen now appears only the very first time you ever connect.
- One account, one Drive — everywhere. Your CoreOS account is now tied to a single Google Drive across all your devices. If a device picks a different Google account by mistake, CoreOS says so and points you to the right one — so your backup can never quietly split in two. (Switching to a different Drive on purpose is still possible, explicitly.)
- No more stuck connect screen. On a browser that isn't signed in to Google, connecting used to hang on a blank screen. Now CoreOS shows a clear next step — sign in to your Google account, then continue — and never leaves you stuck.
Your workspace now backs itself up to your own Google Drive — so a cleared browser or a lost device no longer means a lost workspace.
- Back up to your own Google Drive. Connect your Google account once and CoreOS saves your workspace to a private, app-only folder in your Drive. Like sign-in, it's now required to use CoreOS — so every workspace has somewhere to come back from.
- It backs up on its own — within seconds. After you connect, every change is saved to Drive automatically moments after you make it. There's nothing to remember and no button to press.
- Restore on any device. Sign in and connect the same Google account on a new phone or after clearing your browser, and your workspace comes straight back. If both a device and Drive have data, CoreOS lets you merge them or pick a copy.
- Two devices, one workspace. Work on your laptop and your phone without thinking about it: when both have changed, CoreOS combines the two automatically — where the same item was edited in both places, the newest edit wins, and nothing is silently lost.
- Private on a shared device. Each account now keeps its own completely separate data on the device. If someone else signs in to CoreOS on your computer, they get their own workspace — they can't see yours, and signing back in brings yours back untouched.
- Manage it from the Data tab. See which account you're connected to and when the last backup ran, back up or restore on demand, or disconnect at any time.
- Still yours, still private. The backup runs entirely in your browser — your data goes straight to Google, never through us, and we never see your Google password or tokens. CoreOS uses the Drive App Data scope, so it can only ever touch the single file it created, never your other files.
- One theme everywhere. Switch to dark on the home page and the app follows — and the other way round. The site and the app now share a single light/dark setting.
Under-the-hood groundwork for the calendar — everything looks and works exactly as before.
- Calendar foundations. We reworked how calendar events are stored and identified behind the scenes, laying the groundwork for richer calendar features later on. Nothing about your calendar changes today — your events, colours, repeats and views are all exactly where you left them.
Sign in once with a code from your inbox. CoreOS now asks who you are, so your workspace can follow you rather than living on a single device.
- Sign in with a one-time email code. CoreOS now asks you to sign in: enter your email, and a six-digit code arrives in your inbox. There is no password to set, remember or lose.
- It verifies the moment you finish typing. The six-digit field checks your code as soon as the last digit lands — nothing to click. Paste the whole code at once and it fills itself in.
- A quick hello the first time. When you first sign in, CoreOS asks for your name and date of birth to set up your account — just once. After that, signing in is only the code.
- Stay signed in for 30 days. Verify once and CoreOS remembers you on this device for about a month, offline included. Sign out any time from the Data tab.
- Your workspace is untouched. Signing in gates the app, not your data — every space, task, note and setting already on this device is exactly where you left it.
- Still yours, still private. Only your email address and the times you request a code are ever handled on a server. Your workspace content never leaves your device.
Tasks now separate the day you plan to do something from the day it actually has to be finished — and Areas become Spaces.
- Do date and Deadline. A task's single due date has been replaced by two: the do date is when you intend to work on it, and the deadline is the day it cannot slip past. Planning and pressure stop being the same number.
- The deadline looks after itself. It follows the do date as you set it, so a task with one date still takes one action. Change the deadline yourself and it stays where you put it — the two only come apart when you want them to.
- Filter by whichever date matters. On the Tasks tab, pick the date type — Do date or Deadline — then the range. Ask "what am I working on this week?" or "what is due this month?" without them being the same question.
- Deadlines show up where they matter. A task lists its deadline alongside its do date only when the two differ, so nothing is repeated back at you.
- Open Scratch Pad — a link in the desktop sidebar for quick notes that don't belong to anything yet. Opens in its own tab.
- Areas are now Spaces. The same feature, a clearer name: a Space groups your tasks, follow-ups, events and resources into a category. Nothing moved, nothing needs redoing — every existing area is already a space, with its colour, links and history intact.
- A calmer Dashboard. The + button on the Dashboard now offers only the things a day is actually made of — tasks, follow-ups and events. Contacts and Spaces are set up from their own tabs, where you can see what you already have. Every other screen still offers the full set.
- Your existing dates carried over automatically. Every task's old due date became both its do date and its deadline, so nothing changed meaning and nothing needs revisiting. Older backups import the same way.
A focused fix for the installed app on phones, where a stray downward swipe could reload CoreOS and leave the bottom navigation off the screen.
- The bottom navigation could disappear after a pull-to-refresh in the installed app on Android. The page was being measured against two slightly different ideas of “the height of your screen”, and on phones those don't always agree — so the app ended up marginally taller than the space available, pushing the tab bar just past the bottom edge. You had to scroll down to reach it, which also pushed the header out of view. The layout is now locked to the real visible area, so the header and tab bar always stay put.
- Pull-to-refresh no longer reloads the app at all. Swiping down inside a list was never meant to restart CoreOS — it happened because the gesture was escaping the scrolling area and reaching the browser underneath. Scrolling now stays where it belongs. Nothing is lost by this: new versions already install themselves, so there has never been a reason to refresh by hand.
A new local database built to grow with you, storage you can actually see, and updates that install themselves. Nothing to do — your data moves across automatically the first time you open this version.
- CoreOS now runs on IndexedDB. The old store kept your entire database — every workspace — as a single block of text with a hard ceiling near 5 MB. The new one gives you space measured in gigabytes, so pages, tasks and contacts can pile up without ever hitting a wall.
- Every page is saved on its own. Editing a page now writes just that page instead of rewriting everything you own. Typing stays equally fast whether the workspace holds five pages or five thousand — saving a page in a 12 MB workspace went from ~44 ms to under 1 ms.
- See your storage. The Data tab now shows which store is in use, how much space CoreOS is taking and how much this browser is offering, with a live meter that warns you before things get tight.
- Keep data safe. One button asks the browser to mark your data as persistent, so it isn't quietly cleared when the disk runs low or the app goes unopened for a while.
- Open in two tabs safely. Changes made in one tab now appear in the others by themselves — and never interrupt you mid-sentence: a sync waits until you've left the editor.
- Large-page heads-up. Pages past about 1,200 blocks now say so, explaining that saving is unaffected and it's the on-screen editing that gets heavier.
- Version panel. The Data tab now shows which build you're actually running, whether an update is on its way, and a Check for updates button — so a version can never be stuck without you being able to see it or do something about it.
- Updates install themselves. New versions no longer wait behind a Refresh button. A build applies the next time you open the app — no hard refresh, no reinstalling, no clearing site data — the same way on desktop, Android and iOS.
- An update can never cost you a keystroke. Pending edits are written to disk before an update is applied, and the app never reloads while a form is open, a drag is in flight, or you're in the middle of a page.
- Your data moves itself. Existing data is migrated on first launch, verified by reading it back, and only then is the old copy cleared — if anything looks wrong the original is left exactly where it was.
- Graceful on locked-down browsers. Where IndexedDB is blocked or unresponsive — private windows, restricted devices — CoreOS falls back to the previous store, and then to memory, telling you plainly which one is in use.
- No more flash of the wrong theme while the app starts up.
- A browser could get permanently stuck on an old version. If you didn't press the old Refresh button, the new version sat parked and never took over — and because it's only released once every tab of the app is closed, refreshing, clearing the cache and reinstalling all had no effect. Phones hid the problem by closing tabs on their own; desktops, which keep tabs alive for weeks, did not. Versions now take over by themselves and there is no button to miss.
- A stale build could be served even after updating. The offline layer asked for fresh files but the browser was still allowed to answer from its own on-disk copy, so an old script could survive a new release. Every file is now revalidated against the server on each load.
- Saves can no longer fail quietly. When storage is full or a write is refused, CoreOS now says so and keeps retrying, instead of showing a single toast and moving on as if the change had been stored.
Faster linking, richer notes, and a calmer calendar — plus a handful of polish fixes.
- Searchable contact linking. Link one or many contacts to any task, follow-up, event or page from a single type-ahead picker that stays fast as your client and team lists grow.
- Filter contacts by tag. Narrow the Contacts list to any tags — including an Untagged filter — working hand-in-hand with bulk tagging.
- Reorder subtasks by drag-and-drop. Grab a subtask and drop it into place.
- Resizable table columns in Resources. Drag a column's edge to set its width; widths are saved with the page.
- Export pages as Markdown. Download any Resources page as a portable
.mdfile. - Navigable folders in Resources. Open a folder to browse its contents with a breadcrumb trail, instead of expanding inline lists.
- Simpler follow-ups. A follow-up now identifies the person through the contacts you link — the separate free-text “Who” field is gone. Just say what it's about and link whoever's involved.
- The Calendar now shows the blank grid for empty days and months, instead of a create-event prompt — the + button and clicking a day still add events.
- Dashboard and Calendar sub-tabs are evenly sized and centred on mobile.
- The app's browser-tab icon now matches the CoreOS logo used across the site.
- Subtasks autosave. Checking a subtask now saves instantly and moves the task to In progress — it shows in the Doing tab straight away, no extra Save needed.
The first live version of CoreOS — a local-first personal operating system for tasks, follow-ups, calendar, contacts and Notion-style notes.
- Subtasks with automatic status. Break a task into subtasks; checking any subtask moves the task to In progress automatically. A task is only Done when you mark it done — never before.
- Bulk-tag contacts. Select several contacts and apply tags to all of them in one go.
- Link multiple areas & contacts to a single task, follow-up, event or page.
- Dashboard counts — including open follow-ups — are scoped to the selected day and the active filter, so the numbers always match what's shown.
- Resources: the “/” command menu now works on mobile, not just desktop.
- Resources: Undo/Redo (Ctrl/⌘+Z and Ctrl+Y) now cover every editor action consistently.
- The Snooze action on follow-ups.
CoreOS updates install quietly in the background — when a new version is ready, you'll see a one-click Refresh prompt in the app.