Perfect Clock — Privacy Policy

Last updated: September 27, 2026

Perfect Clock is a world-clock timeline app (available as a web app and as a Chrome extension). This page explains what data it handles and how.

Data stored locally

Your selected cities, per-city work-hour settings, display preferences (time/date format, notification toggle), and any events shown on the timeline are stored only in your browser's local storage (or, for the Chrome extension, its local extension storage). None of this is transmitted to any server we operate — there isn't one — or to Google Analytics. Uninstalling the extension, or clearing site data for the web app, removes it immediately.

City search

When you search for a city that isn't in the app's built-in list, the search text you type is sent to Open-Meteo's free, keyless geocoding API to find matching places. No account, device identifier, or other personal information is attached to that request beyond the text you typed.

Notifications

Event-start notifications use your browser's own built-in Notification API. This is entirely local to your device; no notification content is sent anywhere.

Google Calendar

If you explicitly click "Connect Google Calendar", Perfect Clock requests read-only access (calendar.readonly) to your primary Google Calendar, solely to display your events on the timeline. The web app uses Google's own sign-in flow (Google Identity Services); the Chrome extension uses Chrome's own chrome.identity API instead, since Manifest V3 doesn't allow the method the web app uses. Either way, your calendar data is fetched directly from Google to your own browser and kept only in local storage — it is never sent to any server we operate. You can revoke this at any time using the app's own "Disconnect" button, or from your Google Account permissions page.

How we protect your data

All communication between your browser and Google's servers happens over HTTPS/TLS, so your calendar data is encrypted in transit. We don't operate a backend server, so there is no database, file storage, cache, log, or any other backend storage of any kind where your data could be retained or exposed. Imported calendar events are kept only in your browser's local storage (or the extension's local storage). The Google access token is never written to storage by the app: it is held in memory for the current session only (for the Chrome extension, Chrome's own chrome.identity token cache also keeps it), and it expires on its own after about an hour. Because nothing is transmitted to or held by any backend we control, there is no server-side copy of your data for us — or anyone else — to breach. You are always in direct control of this data: you can clear it at any time using your browser's own standard tools (e.g. clearing site data / browsing data for perfectclock.cc, or the extension's storage from chrome://extensions), independently of anything we do.

Limited Use disclosure

Perfect Clock's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements. Google Calendar data is used only to display your events on the timeline and to show event-start notifications. It is not transferred to anyone, not used for advertising, and not read by humans.

Analytics (website only)

The web app at perfectclock.cc uses Google Analytics 4 to count visits and see which countries, browsers and screen sizes it's used from, and which built-in features are used. The Chrome extension contains no analytics at all.

Google Analytics sets its own first-party cookies (_ga, _ga_*) to recognise repeat visits. You can block or delete them in your browser settings, or opt out of Google Analytics on all sites with Google's browser add-on.

Google Analytics receives the page address, referrer, browser and device details, and your approximate location derived from your IP address (Google Analytics 4 does not log or store IP addresses themselves). It also receives a small number of feature-usage events — for example, that a built-in city was added or removed (identified by its fixed catalog name/timezone, e.g. "Europe/London"), which keyboard shortcut was pressed, which setting was changed (and its new value, e.g. time format or theme), that the free-tier 3-city limit was reached, or that a Google Calendar connection attempt started, succeeded, or failed. It never receives any Google Calendar data (event titles, times, or attendees), anything you type into the city search box, or any other content — only these fixed, non-personal event names. Advertising features and Google signals are turned off. See how Google uses data from sites that use its services.

Fonts

The app loads its typefaces from Google Fonts (fonts.googleapis.com, fonts.gstatic.com). As with any web request, this exposes your IP address and browser user agent to Google; no other data is sent. See Google Fonts' privacy FAQ.

What we don't do

Data deletion

Since all data is stored locally on your own device, you're always in full control of it. You can delete it at any time using your browser's standard, built-in tools — clearing site data / browsing data for this app in your browser's settings, or uninstalling the Chrome extension — with no need to contact us. Disconnecting Google Calendar from within the app revokes its access token right away and deletes all imported calendar events.

Changes to this policy

If this policy changes, the updated version will be posted at this same URL with a new "Last updated" date.

Contact

Questions about this policy can be raised via the project's GitHub issues.