Calendar Clock← Back

Privacy Policy

Last updated: June 3, 2026

1. Who we are

Calendar Clock is an indie web app at https://www.calendar-clock.com that visualizes the signed-in user's Google Calendar events on a physical-style clock face. Core features are free; only a few specific features are offered as paid. The service is operated as a single-developer project by the contact listed at the bottom of this page.

2. Google user data we access (OAuth scopes)

When you sign in with Google, Calendar Clock requests the following OAuth scopes and uses each one strictly for the stated purpose:

• openid, https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile — We retrieve your Google account ID, email address, name, and profile picture URL solely to identify you as the signed-in user and to display your name in the site header. This data is never used for advertising, profiling, or training any AI/ML model.

• https://www.googleapis.com/auth/calendar.events — We read the events of the currently selected day from the calendars you own or subscribe to, and we write changes back to those events ONLY when you take an explicit action in the clock UI (clicking an empty time to create, clicking a sector to edit, dragging a sector to move, dragging an edge to resize, or clicking delete in the editor). We never modify events automatically and never request write access to other resources (settings, ACLs, calendar properties).

• https://www.googleapis.com/auth/calendar.calendarlist.readonly — We list the calendars you subscribe to (primary + shared) so we can render events from all of them on a single clock face. We do not modify the calendar list.

3. How we use Google user data

Data flow: when you load the page, our server-side handler at /api/auth/callback/google receives a short-lived access token from Google. Each time the page is rendered, our server uses that token to fetch events for the currently selected day from Google Calendar, transforms them into arc shapes, and sends the result to your browser as part of the rendered HTML. Your browser then displays the clock. When you create / edit / move / delete an event, our server forwards your action to Google Calendar via the corresponding REST API call (POST / PATCH / DELETE on the events resource).

Purpose: the data is used exclusively to render and modify your calendar on the clock face. Calendar Clock does not use Google user data for: advertising, profiling, building user-specific marketing audiences, selling to third parties, or training any AI or machine-learning model. Aggregated, anonymized usage statistics (e.g. error counts, page-load timings) may be collected by Vercel Analytics but never include calendar contents.

4. Data storage and protection

Calendar contents (event titles, times, attendees, descriptions) are NOT persisted to any database operated by Calendar Clock. Every page request fetches fresh data from Google's servers, renders, and discards it after the response is sent.

OAuth tokens (access token, refresh token, expiry timestamp, granted-scope string) are stored only inside a server-signed, HttpOnly, Secure, SameSite=Lax session cookie issued by NextAuth (Auth.js v5). The cookie is signed and encrypted with AUTH_SECRET using the JWE standard and is unreadable by client-side JavaScript. The secret itself is stored in Vercel's encrypted environment variable store and is never committed to source control.

All traffic between the browser and our servers is served over HTTPS (TLS 1.2+) via Vercel's managed certificates. Traffic between our servers and Google's APIs is similarly HTTPS-only.

Our application code is open source at https://github.com/hjp845/watch — anyone can audit exactly how the OAuth tokens and calendar data are handled.

5. Data retention

OAuth tokens in the session cookie: retained only for the lifetime of the cookie. The cookie expires automatically after at most 30 days of inactivity, or immediately when you click "Sign out" or close your browser if the cookie is session-only.

Calendar events: never retained. As described above, event data is fetched per request, rendered, and discarded.

Operational logs (HTTP request logs at Vercel): retained for up to 7 days for debugging and abuse prevention. These logs contain URLs and status codes but no event content, no OAuth tokens, and no decrypted personal data.

Aggregated analytics: retained per Vercel Analytics defaults (90 days) and contain no calendar content or personal identifiers.

6. Data deletion — how to remove your data

Because Calendar Clock does not persist calendar contents and only holds tokens inside your session cookie, you have full and immediate control over removal:

1) Click "Sign out" in the site header. This server action clears the session cookie immediately, so your OAuth tokens are no longer held anywhere on our infrastructure.

2) Revoke Calendar Clock's access to your Google account at https://myaccount.google.com/permissions . This invalidates the refresh token at Google's end so no future fetches are possible.

3) If you'd like us to additionally erase any operational log entries that may reference your account, email hjp845@gmail.com from the address tied to your Google account, with the subject "Calendar Clock data deletion request". We respond within 7 business days and remove matching records.

Because there is no separate user database to delete from, steps 1 and 2 are sufficient to completely sever the link between you and Calendar Clock; step 3 is provided for thoroughness.

7. Cookies

Calendar Clock uses two cookies:

• A NextAuth session cookie (HttpOnly, Secure) that holds the encrypted OAuth tokens described in section 4. Required for sign-in.

• A `lang` cookie (not HttpOnly) that remembers your UI language preference (en / ko). Contains no personal data.

No advertising, analytics, or cross-site tracking cookies are set.

8. Limited Use compliance

Calendar Clock's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements: we only request scopes necessary for the user-facing features described above, we do not transfer Google user data to third parties except as needed for the features, we do not use the data for serving ads, and we do not allow humans to read the data unless we have your affirmative agreement, it is necessary for security purposes, or required by law.

9. Children

Calendar Clock is not directed to children under 13. We do not knowingly collect data from children.

10. Changes to this policy

Material changes will be reflected in the "Last updated" date above and announced in the app on first sign-in after the change.

11. Contact

Operator: hjp845 (individual developer)

Email: hjp845@gmail.com

Source code: https://github.com/hjp845/watch

We aim to respond to privacy inquiries within 7 business days.