Privacy Policy
Effective date: April 30, 2026 · Last updated: April 30, 2026
1. About ChronoIQ
ChronoIQ (chronoiq.dev) is a free AI-powered study scheduler. It connects to your Google Calendar and Google Classroom, analyses your available time, and uses AI to create study-block events directly in your Google Calendar. It also stores a small amount of your scheduling data so progress, settings, and learned estimates persist across sessions.
This policy explains exactly what data we collect, what we do with it, where it lives, and how you can see, export, or delete it. We have written it to be specific rather than generic because our data practices are simple and we want them documented honestly.
2. What Google Account Data We Access
When you sign in with Google, you are shown a consent screen listing the specific permissions ChronoIQ requests. We request only what the service requires to function.
| Data | Google API Scope | Why We Need It |
|---|---|---|
| Name, email address, profile picture | openid, email, profile | Displaying your name and avatar in the app header. Your email also serves as your stable identifier in our database (see Section 4). |
| Google Calendar events(read & write) | calendar.events | Read: Event titles, start/end times, and descriptions from your primary calendar are loaded into your browser to calculate your free time windows. Existing events are not copied to our database — they're read on-demand. Write: When you schedule an assignment or use the setup wizard, we create events in your primary Google Calendar (study blocks, recurring commitments). These events remain in your calendar after you close ChronoIQ and are under your control. |
| Google Classroom courses(read only) | classroom.courses.readonly | We fetch the names and IDs of your active Classroom courses to populate the course list in the app. Course lists are not stored on our server — they're loaded each session. |
| Google Classroom assignments and submission status(read only) | classroom.coursework.me.readonly | We fetch published assignments (title, description, due date, type, point value) and check your submission state so already-graded assignments are not shown to you. Assignment lists are loaded on-demand and not stored — only assignments you actively schedule have a derived snapshot retained (see Section 4). We do not read other students' work. |
3. How We Use Your Data
3.1 Displaying your schedule and assignments
After you sign in, your calendar events and Classroom assignments are fetched from Google and loaded into your browser's memory. They are displayed in the ChronoIQ interface so you can see your upcoming commitments and pending assignments in one place.
3.2 Computing free time
Your calendar events are used client-side (in your browser) to calculate the time windows in which you are free. These free time windows are expressed purely as time ranges (e.g., "Monday, 2026-04-07: 09:00–11:30, 14:00–16:00") — no event titles or event descriptions are part of this calculation output.
3.3 AI scheduling (Google Gemini)
When you click "Schedule" on an assignment, the following information is sent from your browser to our server and forwarded to Google's Gemini AI API:
- The assignment's course name, title, type, priority, and description
- Your derived free time windows for the look-ahead window you've configured (default 30 days). Time ranges only — no calendar event titles or descriptions.
- Your estimated time, your minimum block length preference, and your reschedule context if applicable
The Gemini API returns a proposed schedule (a list of task titles with start and end times). This data is processed only on our server; the Gemini call itself is not logged or stored beyond what Google retains under its own policies. Your use of the Gemini API through ChronoIQ is additionally subject to Google's Generative AI Terms of Service.
3.4 Schedule import via image / PDF (Google Gemini Vision)
If you use the schedule import feature in the setup wizard, the image or PDF you upload is sent to Google's Gemini API to extract recurring events. The file is held in memory during processing and is not retained on our server after the response is returned. The extracted events are shown to you for review before any are written to your calendar.
3.5 Catch-up triage
If you use the "Help me catch up" feature, a summary of your overdue assignments (title, type, priority, due date, estimated/completed minutes, missed-block count) is sent to Gemini to generate triage recommendations. No content beyond what you typed when creating the assignments is included.
3.6 Personalised time estimates (per-student learning)
We aggregate your own completed study sessions to compute median time taken for past assignments matching a course + type pair. This computation happens server-side against your own data only — your data is never combined with other students'. The result is shown to you as a soft suggestion ("Heads up — your past N essays for AP Lit averaged ~75 min").
3.7 Writing events to your Google Calendar
After the AI returns a schedule (or when you save the setup wizard), ChronoIQ creates the events directly in your Google Calendar using the access you granted. The created events are standard Google Calendar events that you own. You can edit or delete them at any time in Google Calendar, or via ChronoIQ's delete affordances.
4. Data Storage and Retention
4.1 Server-side database (Cloudflare D1)
ChronoIQ stores a small amount of your data in a Cloudflare D1 database (a managed SQLite database hosted on Cloudflare's edge network) so that progress, settings, and learned estimates persist across sessions. We store the minimum needed to make those features work. The complete list:
- User record: your email address (used as the primary key), your name as reported by Google, and the timestamp your account was first created.
- Study sessions: one row per AI-scheduled study block, keyed by the Google Calendar event ID. Contains a snapshot of the parent assignment at scheduling time (title, type, course, priority, due date, source) plus the scheduled start/end, completion status, completion timestamp, and (when you use focus mode) the actual minutes you spent on the block.
- Preferences: your work hours, minimum block length, look-ahead window, buffer minutes, study reminder minutes, and Pomodoro work/break interval lengths.
We do not store: your calendar events from other apps, your Classroom assignments that you haven't actively scheduled, your Google access or refresh tokens (those live only in the encrypted session cookie — see 4.2), or any data not listed above.
4.2 Session cookie
Your authenticated session is held in an encrypted browser cookie:
- Cookie name:
ciq_session - Contents: Your Google OAuth access token, OAuth refresh token, token expiry timestamp, your name, your email address, and your Google profile picture URL.
- Security: The cookie is encrypted with AES-256-GCM using a secret key that never leaves our server. It is
httpOnly(inaccessible to JavaScript running in the page) andSameSite=Lax. - Expiry: 30 days from your last sign-in, or immediately when you click Sign Out or delete your account.
Your OAuth refresh token never touches our database — it is only ever read from the encrypted cookie when we need to obtain a new access token from Google.
4.3 In-memory only (not stored anywhere)
The following is loaded into your browser's memory while you use the app and discarded when you close the tab — it never reaches our server-side database:
- The contents of your Google Calendar events (titles, descriptions, attendees, etc.)
- The full list of your Google Classroom courses and assignments before you schedule them
- Files you upload to schedule import (images/PDFs are streamed to Gemini and discarded)
4.4 Retention
Data in our database is retained indefinitely while your account is active so we can power persistence and learning features. When you delete your account (Settings → Account → Delete my account), the cascading foreign-key constraints on our database remove your user record together with every study session and preferences row in one transaction. Deletion is immediate and cannot be undone.
Events that ChronoIQ wrote to your Google Calendar are not deleted automatically when you delete your account — those are events on Google's service that belong to you and may represent study history you want to keep. You can remove them yourself in Google Calendar.
5. Third-Party Services (Subprocessors)
ChronoIQ relies on the following third-party services to operate:
Google APIs (Google LLC)
Google OAuth 2.0 for authentication, the Google Calendar API to read and write events, the Google Classroom API to read courses and assignments, and the Google Gemini API for AI scheduling, schedule import (vision), and catch-up triage. All data transferred to and from Google APIs is governed by the Google Privacy Policy.
Cloudflare (Cloudflare, Inc.)
ChronoIQ is hosted on Cloudflare Pages (web hosting) and stores user data in Cloudflare D1 (managed SQLite database). Cloudflare may log request metadata (IP address, timestamp, URL) and processes our database queries on its edge network in accordance with its Privacy Policy. Database contents are encrypted at rest by Cloudflare's infrastructure.
We do not use any advertising networks, analytics platforms, tracking pixels, or data brokers. No personal data is shared with any third party beyond the subprocessors listed above, and then only to the minimum extent required to provide the feature.
6. What We Do Not Do
- We do not sell, rent, or share your data with any party for advertising or marketing purposes.
- We do not use your data to serve you ads, either on ChronoIQ or elsewhere.
- We do not store the contents of your Google Calendar events or Google Classroom assignments beyond the scheduling-snapshot fields enumerated in Section 4.1.
- We do not allow any human — including ChronoIQ staff — to read your Google Calendar or Classroom content as part of normal operation. Database access is restricted to automated queries that serve your own use of the app.
- We do not combine your data with other users' data to build a profile about you, your school, or your performance.
- We do not use Google Workspace data to develop, improve, or train AI/ML models. The Gemini API is called per-request to provide the features described in Section 3 only.
- We do not share your refresh token with any other system. It only ever lives in the encrypted session cookie in your browser.
7. Your Rights and Controls
7.1 View and export your data
You can download a complete JSON export of everything we store about you — account record, preferences, every study session — at Settings → Account → Download my data. The file is generated on demand and contains exactly what's in our database for your account, in human-readable JSON.
7.2 Delete your account
At Settings → Account → Delete my account you can permanently remove your account and all associated data from our database. The action is immediate and cannot be undone. Events that ChronoIQ wrote to your Google Calendar are not deleted by this action — those are yours and remain on Google.
7.3 Revoke Google access
You can revoke ChronoIQ's access to your Google account at any time by visiting myaccount.google.com/permissions and removing ChronoIQ. Revoking access immediately invalidates the OAuth tokens stored in your session cookie. No further Google API calls will be possible until you sign in again.
7.4 Sign out
Clicking "Sign Out" deletes the session cookie from your browser immediately. Your account record and study session history remain in our database (you'll see them again the next time you sign in) — use Delete Account if you want them gone.
7.5 Change preferences
All scheduling preferences (work hours, block lengths, look-ahead window, buffer minutes, reminders, Pomodoro intervals) are editable at Settings.
7.6 Other access requests
For any other privacy-related request, contact us at privacy@chronoiq.dev. We aim to respond within 30 days.
8. Security
Session data is encrypted with AES-256-GCM before being stored in your browser cookie. The encryption key is a server-side secret that is never transmitted to clients. All communication between your browser and ChronoIQ, and between ChronoIQ and our subprocessors (Google APIs, Cloudflare), is encrypted in transit using TLS 1.2 or higher. Database contents are encrypted at rest by Cloudflare D1's infrastructure.
We minimise the data we store: no calendar event contents, no full assignment lists, no sensitive Google scopes beyond what is strictly needed. The structure means a database breach would expose only the fields enumerated in Section 4.1, not the contents of your Google account.
9. Children's Privacy
ChronoIQ is intended for use by individuals who are at least 13 years of age, or the minimum age required by applicable law in their country to consent to data processing. Users under the applicable minimum age must have verifiable parental or guardian consent before using the service.
If you are a parent or guardian and believe your child under the applicable age has used ChronoIQ without consent, please contact us at privacy@chronoiq.dev and we will delete the account and associated data on request.
10. Google API Services User Data Policy
ChronoIQ's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. In plain terms: we use the data obtained through Google APIs only to provide the features described in this policy, never for advertising, never to train AI models, and never to allow any human to read it as part of normal operation.
11. Changes to This Policy
If we make material changes to how we handle your data, we will update the "Last updated" date at the top of this page. Continued use of ChronoIQ after a policy update constitutes acceptance of the revised policy. For significant changes, we will make a reasonable effort to notify users (for example, by displaying a notice in the app).
12. Contact
For privacy-related questions, access requests, or concerns, contact us at:
ChronoIQ
Email: privacy@chronoiq.dev
Website: chronoiq.dev
We aim to respond to privacy inquiries within 30 days.
ChronoIQ · Terms of Service · Privacy Policy