Focus day

Settings

Next Up runs in your browser. You connect it to your Google Calendar with a small private script in your own Google account, which takes about 5 minutes. No third-party service is involved, and only you can see your events.

1Create your calendar bridge (once)

This page can't sign in to Google by itself, so you'll add a small read-only script to your work (Google Workspace) account that passes your events to this page.

  1. Click Copy script below.
  2. Open a new Apps Script project, signed in with your work Google account, the one that has your work calendar. If Chrome is signed in to several accounts, check the avatar in the top right. Rename the project Next Up bridge (click "Untitled project" at the top).
  3. Select all the starter code, paste the script over it, and press Ctrl+S (Windows) or Cmd+S (Mac) to save.
  4. Click Deploy → New deployment, click the gear icon next to "Select type" and choose Web app.
  5. Set Execute as: Me. For Who has access, your organisation's settings decide which choices you see:
    • Anyone, if it's listed. This works in every browser. Your calendar still stays private, because the script only answers requests that include your personal key.
    • Otherwise, Anyone within your organisation. This works in Chrome while you're signed in to your work account. It relies on Google's sign-in cookies, so browsers that block third-party cookies (Brave, Safari, or Chrome with "Block third-party cookies" on) can't connect. See "Something not working?" in Settings.
  6. Click Deploy, then Authorize access and pick your work account, then Allow. Scripts made inside your organisation often skip Google's warning screen. If you see "Google hasn't verified this app", click Advanced → Go to Next Up bridge (unsafe). If you see "This app is blocked", your admin restricts Apps Script, so ask your IT team. The script can only read your calendars, and you can read every line of it below.
  7. Copy the Web app URL and paste it into step 2. Work URLs usually look like https://script.google.com/a/macros/yourcompany.com/s/…/exec.

2Connect

From step 1. It's private to you, so don't share it.
Opens your script in a new tab. Copy the key it shows.
Works like a password for your calendar feed. Keep it to yourself.

3Pick your calendars

Calendars to watch

Tick the calendars to watch. Use the colour swatch to change a calendar's colour here; it doesn't change it in Google Calendar.

Shows today's events from this calendar on the left as a timeline, with a line at the current time and the past dimmed. Great for a time-blocking or "zones" calendar. It doesn't need to be ticked above.

4Alerts and options

Choose how many minutes before an event each alert starts, and its colour. Set minutes to 0 to turn an alert off. Colour changes preview straight away and are kept when you click Save.

Get readyfirst alert
Soonsecond alert
Startinglast alert
100%
Fades the page while nothing needs your attention yet, so it's less distracting. It goes back to full brightness when your first alert starts, or while you point at it. If all alerts are off, the page stays at this opacity.
70%
Your own sound
None added
MP3, WAV, M4A, AAC or OGG, up to 1.5 MB. Once added, choose "Your sound" for any alert.

Shown in the window and tab title, so you can tell windows apart in split view or the taskbar.
In timer-only mode, show the window name on the
Using more than one Google account?

Open a separate Next Up window for each account. Each window keeps its own name, calendar link, key, calendars, alerts, sounds and theme, so they never overwrite each other.

Set up each account with its own copy of the script, deployed while signed in to that account (step 1).

Your Next Up windows
    The next event gets the big timer. Each event after it gets its own smaller timer underneath.
    100%
    Also on the timer card (− and + buttons) or with the − and + keys; 0 resets it.
    When the header is collapsed, keep showing
    Leave everything unticked to hide the header completely; a small button in the corner brings it back. Collapse the header with its arrow button or the H key.
    Layout
    Drag any header item to a new spot, including between the title row and the buttons. Drag the left or right edge of the timer card to change its width. On smaller screens this puts the timer and the agenda side by side. Your layout is remembered for this window. The lock button in the header turns dragging off until you close the window.
    Behaviour
    Auto
    When I stop an alert Either way, the next alert for the event (for example Soon, then Starting) shows as usual.
    Open Next Up in its own window (no tabs or address bar)

    The full-screen button in the header hides all of Chrome's toolbars with one click, and Esc brings them back. Chrome only allows full screen after a click, so it can't start that way automatically.

    To keep Next Up in its own small window without tabs or an address bar, open it with Chrome's app-window option. The commands below already use this file's location and this window's settings, so each Next Up window gets its own shortcut. If you move the file, come back here and copy them again.

    This sets the size the window opens at. You can still drag its edges to resize it.

    Windows: right-click the desktop, choose New → Shortcut, paste this as the location, and name it "Next Up":

    If Windows says it can't find chrome.exe, Chrome is installed just for your user account. Replace the first part with "%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe".

    Mac: open Terminal, paste this and press Return. To keep it as an app, open Automator → New → Application, add a Run Shell Script action, paste the same line, and save it to Applications.

    You can resize the window and keep it beside your work. Your settings and theme stay the same, because it's still Chrome on the same page.

    Something not working?
    • "Couldn't reach your calendar bridge": make sure Chrome is signed in to your work Google account, then click Get my key and check it opens without an error. If you also use a personal Google account in Chrome, Google may pick that one instead. Use a Chrome profile that only has your work account.
    • "Get my key" works but "Load my calendars" can't connect: your script is set to Anyone within your organisation or Only myself, which need Google's sign-in cookies, and your browser is blocking them. In Chrome, go to Settings → Privacy and security → Third-party cookies → Allowed to use third-party cookies and add [*.]google.com. Or, if your organisation allows it, go to Deploy → Manage deployments in Apps Script, click the pencil, change Who has access to Anyone, choose Version: New version and deploy. The URL and your key stay the same.
    • Deploy is greyed out, "Anyone" isn't offered, or the app is blocked: your Google Workspace admin controls Apps Script and who can use web apps. Ask your IT team to allow Apps Script for your account, or use the Anyone within your organisation option above.
    • "Key doesn't match": click Get my key and paste the key it shows. Keys change when you click "Make a new key".
    • Changed the script? Use Deploy → Manage deployments, click the pencil, set Version: New version and deploy. That keeps the same URL. A new deployment creates a new URL.
    • No calendars listed: Next Up sees the same calendars listed in Google Calendar under "My calendars" and "Other calendars".
    • Flashing is too much: turn off "Flash the page during alerts" above, or click Stop flashing during an alert.
    • Settings gone: settings are saved in this browser, separately for each page address or file location. If you open Next Up from a different address, move the file, or switch browsers, connect again. Your script and URL still work.
    • Stop using it: in Apps Script, go to Deploy → Manage deployments → Archive, and remove access at your Google account's third-party connections.

    Reads your Google Calendar through your own read-only script. Only you can see your events, and settings stay in this browser.