Next Up by URLflows 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.
1 Create 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 own Google account that passes your events to this page.
Click Copy script below.
Open a new Apps Script project , signed in with the Google account that has your calendar. Rename it Next Up by URLflows bridge (click "Untitled project" at the top).
Select all the starter code, paste the script over it, and press Ctrl+S (Windows) or Cmd+S (Mac) to save.
Click Deploy → New deployment , click the gear icon next to "Select type" and choose Web app .
Execute as: Me and Who has access: Anyone . Your calendar still stays private: the script only answers requests that include your personal key, which only you have. ("Only myself" also works in plain Chrome, but browsers that block third-party cookies, such as Brave or Safari, can't connect with it.)
Click Deploy , then Authorize access and pick your account. Google will say "Google hasn't verified this app" . That's expected for a script you made yourself. Click Advanced → Go to Next Up by URLflows bridge (unsafe) , then Allow . The script can only read your calendars, and you can read every line of it below.
Copy the Web app URL (it ends in /exec) and paste it into step 2.
Apps Script code
Copy script
3 Pick your calendars
Load my 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.
Focus day agenda
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.
Main page : its cards and layout. The pop-out window doesn't use these.
Earlier today card
Off
Above the timer
Below the timer
Top of the side cards
Bottom of the side cards
Lists today's events that have already ended, in a card of their own. The card hides when nothing has ended yet.
Show events that ended in the last
1 hour 2 hours 3 hours
4 hours 6 hours 8 hours
12 hours
Never earlier than midnight. 12 hours is as far back as your calendar link sends.
Layout
Reset header layout
Reset timer width
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.
Pop-out window : what it shows and where it opens. Everything on the Display and Alerts tabs applies to it too.
Open the pop-out to preview
Window name
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
Right
Left
Using more than one Google account?
Open a separate Next Up by URLflows 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 (Setup tab, step 1).
Your Next Up by URLflows windows
Open Next Up by URLflows 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.
Opens Next Up by URLflows in a separate window with no tabs, bookmarks or toolbar, at the size set below. Chrome still shows a thin, read-only address strip on these windows. The shortcut below removes that too.
To keep Next Up by URLflows 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 by URLflows 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 by URLflows":
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".
Copy Windows shortcut
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.
Copy Mac command
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.
Common questions
Why does it say "Couldn't reach your calendar bridge"?
Chrome is probably signed in to a different Google account from the one that made the script. Click Get my key on the Setup tab to check. If you use several Google accounts, try a Chrome profile that only has this one.
"Get my key" works, so why can't "Load my calendars" connect?
Your script is probably set to Only myself , which Brave, Safari and blocked third-party cookies stop from working. Redeploy it with Who has access: Anyone . Your key still keeps your calendar private.
Can I use a work or school Google account?
Yes, if your admin allows Apps Script. Use the Google Workspace version of Next Up by URLflows, which has steps for work accounts.
Why does it say "Key doesn't match"?
The key was changed with "Make a new key". Click Get my key and paste the key it shows.
I changed the script. How do I keep the same URL?
In Apps Script, use Deploy → Manage deployments , click the pencil and choose Version: New version . A new deployment gets a new URL.
Why is a calendar missing?
Next Up by URLflows lists the same calendars Google Calendar shows under "My calendars" and "Other calendars". Click Load my calendars on the Setup tab after adding one.
Can I change or add my own alert sounds?
Yes. On the Alerts tab, pick a sound for each alert, or click the upload button next to one to use your own file.
How do I stop the flashing?
Turn off "Flash the page during alerts" on the Alerts tab, or click Stop flashing during an alert.
Where did my settings go?
Settings are saved in this browser, separately for each page address or file location. A different browser, address or file location starts fresh. Use the Backup tab to move them.
Who can see my calendar?
Only you. Next Up by URLflows reads your calendar through your own read-only script, and settings stay in this browser.
How do I stop using Next Up by URLflows?