Privacy.
Last updated October 20, 2026 · applies to version 0.10
The short version.
Capturing an event does not require an account. Dashboards require Google sign-in. Images and PDFs are read on your computer. While signed in, event dates, categories, and capture methods are stored on the dashboard server under your Google account ID. Ordinary local capture does not send event titles, text, locations, or images to that server. Optional AI assistance sends only the text you explicitly choose to submit through the server to Google Gemini. If you turn on one-click add, the extension talks to Google Calendar directly, from your browser. The separate anonymous usage count can be turned off. Parsed drafts, save receipts and batch recovery now stay locally in this Chrome profile for recovery; they can be deleted in Saved work & privacy. Images are not stored in recovery.
Optional AI assistance
AI assistance requires Google sign-in and an explicit cloud-processing choice for each new or edited source. When you choose Generate proposal, the text in the assistant, the selected task, today’s date, your time zone, numeric-date preference, and default event duration pass through our server to Google Gemini. This may include event titles, locations, and any personal information present in the text. Remove details you do not want to share before submitting.
PDF and image reading still happens on your computer; only the extracted text you review and approve is sent. Your Calendar access token, live Calendar contents, original files, and images are not sent to the AI provider. AI only proposes new drafts; Calendar actions require your review and an explicit action.
We do not save AI prompts or proposals in our database. We keep your account ID, UTC date, and request count for up to seven days to enforce usage limits. Requests use Gemini’s stateless mode with interaction storage disabled; Google’s processing and service data policies still apply. See Gemini API terms. Drafts you open for review follow the existing local draft-recovery settings.
What happens when you add an event
By default, the extension builds a link to Google Calendar's "new event" page with the event's title, date and time, place, repeat, and notes filled in, and opens it in a new tab. Google receives those details when the page opens, and the event is saved to your calendar only if you press Save there. Google's privacy policy covers what happens on Google's side. Dashboard sign-in verifies your Google identity but does not grant access to your calendar.
One-click add (optional)
If you connect Google Calendar on the extension's Settings page, pressing Save to Calendar puts the event straight into your calendar. Chrome asks Google for permission to see and edit events and to see the list of your calendars, and keeps the access token itself. The extension uses that access only to:
- add the events you choose, with the calendar, color, and reminders you picked;
- list your calendars, so you can pick one;
- check the time you're adding for overlapping events, so the card can say "You have Chem lab then". Those titles are shown in the card and never stored or sent anywhere else;
- delete an event you just added, when you press Undo (only events it added in the last 30 minutes).
- optionally compare titles against events on the selected date to identify duplicates;
- check up to 8 hours ahead on the same date for alternative free times in the destination and primary calendars;
- load and update an extension-created event from its local receipt, checking its version before updating.
These requests go directly from your browser to Google. Nothing passes through our server, which never sees your calendar. To stop, choose Disconnect in Settings; to remove the access from your Google account too, use Google's connections page.
Reporting a wrong read (optional)
The review card lets you report an incorrect result. Report text stays in memory; parsed draft notes may also be retained by local draft recovery. You can edit or remove it and describe the correction. No report opens without your explicit consent. Choosing Open GitHub report sends only the text and correction shown in that report, plus the capture method, to GitHub in a prefilled issue URL. GitHub receives these details when the page opens; the extension owner sees a public issue only after you submit it there. This requires a GitHub account. Remove personal or confidential information before sharing. No image, Google token, or dashboard history is included. The prefilled URL may remain in your browser history.
Sharing, Semester Wrapped, and travel time
- Share makes a Google Calendar link and its QR code on your computer. The link holds the event's title, time, place, and repeat (not your notes). It goes wherever you send it.
- Semester Wrapped is built from your dashboard records, and its image is drawn on your computer. Nothing is uploaded unless you share the image yourself.
- Travel time adds a "Travel to …" event before events at a street address. It uses only the address already on the card.
What the extension reads
- Only when you ask. It runs on a page only after you right-click, use the keyboard shortcut, or press a button in its toolbar menu. It never reads pages in the background.
- Highlighted text, when you choose "Add to Google Calendar" on it.
- The area you pick when you take a screenshot: the page's text there, and a picture of that area.
- The page's public event information, if the page publishes it for search engines (many event and ticket sites do), so the times and places are exact.
- Images, PDFs, and text you paste, drop, or choose on the "Add from an image, text, or syllabus" page.
Text inside pictures is read with an OCR engine (Tesseract), and PDFs with PDF.js; both are built into the extension and run on your computer. Pictures and PDFs are never uploaded and never saved.
Optional Spanish, French and German OCR data downloads from Tesseract's official GitHub repository only when requested. The provider sees a model download request, not your image or text. Model files are integrity checked and stored in this device's caches until removed in Settings. The engine's executable code is bundled. Models are available under Apache-2.0.
What it stores, in your browser only
| What | Why |
|---|---|
| Unfinished parsed event drafts and batch journals: titles, dates, times, notes, destination account and original API event IDs | Local recovery for up to 7 days, removed on next extension use after expiry. No screenshots or access tokens are included. Disable draft recovery or delete local data in Saved work & privacy. |
| Save receipts: parsed event details, destination account/calendar, event IDs, links and save/open status | Local save history for up to 30 days, removed on next use after expiry. Undo is limited to 30 minutes; Google events remain unless explicitly undone. |
| Service name, HTTP status, day and count | Local failure diagnostics for 7 days. No text, tokens, URLs or account identity. Aggregate server counters expire after 30 days. Calendar counters are sent only with analytics enabled and a signed-in dashboard session. |
| Numeric date order, time display, duration, default time zone, draft-recovery and source-link choices, OCR language | Capture preferences. Source attribution is opt-in and strips the page URL's query, fragment and credentials before adding it to notes. |
| For each event you add: the day it was added, the event's date, its category, and how it was captured (text, screenshot, or image) | The admin dashboard's statistics. Never the title, text, website, time, or images. |
| A one-way fingerprint of each added event's title and date, and the day it was added | To warn "You already added this event". A fingerprint can't be turned back into the title. |
| Fingerprints of words from titles whose category you changed, with the category you picked (up to 500) | So similar events get your choice next time ("learned categories"). |
| Your theme choice (Auto, Light, or Dark) | To show the extension the way you like. |
| How to add events (a tab or one-click), whether you connected Google Calendar, your calendar, color, reminder presets per category, and travel-time choice | The Settings page. No events or calendar data. |
| Your last five added events (title, day, time, place, and a link to them), in memory only, cleared when Chrome closes | The toolbar menu's Recent list. Never written to disk or sent anywhere. |
| An optional display name, weekly event goal, and preferred category | To personalize My dashboard in this Chrome profile. Change or clear the name in Personalize. |
| A random install ID, and the last day the usage count was sent | The anonymous usage count (below). Deleted when you turn the count off. |
| The admin passcode, as a salted, hashed value only | To protect the admin dashboard. The passcode itself is never stored. |
These local records and preferences live in Chrome's storage. Signed-in accounts also have the account metadata described below on the dashboard server.
Google dashboard sign-in
Google verifies your identity. The server receives a temporary Google access token and checks its client ID, expiration, and verified account identity with Google. Your account ID separates your dashboard records from other users. Your verified email is checked against the server's admin allowlist. We keep your Google account ID and registration date to recognize returning accounts. App sessions store your verified email and display name on the server, together with a hash of a random app-session credential and an expiration date. Google access tokens and passwords are not saved in these sessions.
By default, the app-session credential stays in Chrome's session storage and expires after 12 hours or when that browser session ends. If you explicitly select Remember me on this device, the app-session credential also stays in local extension storage for up to 30 days. Leave this off on shared devices. Signing out clears both local stores and asks the server to revoke that session. Expired server sessions are removed by the daily cleanup. Signing in or signing up explicitly still opens Google's account chooser.
While signed in, the server stores your account ID and each sent event's date added, event date, category, and capture method. It keeps your newest 5,000 of these records (older ones are deleted) until you clear them in My dashboard > Personalize > Clear my dashboard history. That action does not delete events from Google Calendar. Signed-out local history is not automatically attached to an account.
The anonymous usage count
To know how many people use the extension, it counts installs and active users without knowing who anyone is.
- What's sent: a random ID made when the extension is installed (it isn't linked to you, your browser, or anything you do), the extension's version, whether it was used that day, which features were used that day as yes/no flags (highlight, screenshot, image, text, syllabus, one-click add, share, and whether an event was added), and the kind of computer (Mac, Windows, ChromeOS, or Linux). Our server adds the date. That's all: never events, titles, text, websites, or your Google account.
- When: once when you install the extension, once on each day you use it, and again that day only when you use a feature for the first time that day.
- What the admin sees: totals only, such as daily and monthly active users, how many come back the next weeks, which features get used, and how many installs reach each setup step. Never one person's days.
- Where: a small server we run on Cloudflare. It doesn't store IP addresses or keep request logs, and it deletes the day-by-day rows after 90 days. To stop someone from flooding it with fake counts, it counts requests for one minute using a scrambled code made from your connection's address (the code changes every minute and the address itself is never stored), with Cloudflare's rate limiter. Signed-in requests are also counted per account for one minute. Only the admin can see the totals.
- Turning it off: switch off Share anonymous usage count in the extension's toolbar menu. Nothing more is sent, and the random ID is deleted, so turning it back on starts a new one that can't be linked to the old one.
What it never does
- No tracking, ads, or selling data.
- No event text sent during local capture. Optional AI assistance sends only text you explicitly approve; images are not uploaded.
- No access to your Google Calendar unless you connect it. Connected access is used only for chosen events, duplicate/conflict checks, nearby scheduling suggestions and updating extension-created events. No access to your email.
- No reading of pages you haven't asked it to read.
Permissions, in plain words
-
identity: sign in with Google to access dashboards, and, only if you connect it, Google Calendar for one-click add. - The configured server host permission lets the extension read and save your protected dashboard metadata.
activeTab: read the current page, only right after you ask.scripting: show the selection tool and event card on that page.contextMenus: add the right-click menu items.storage: keep the small amount of data listed above.offscreen: run the OCR engine in a hidden extension page.- Optional raw GitHub host access: requested only to download selected OCR language data. Removing a pack clears both model caches; no remote executable code is loaded.
Deleting your data
To delete your account, open My dashboard → Personalize → Delete my account and type DELETE. This removes your registration, dashboard metadata, and all server app sessions. AI usage counters are unlinked from your identity and retained only as anonymous totals until their normal seven-day expiry, so deleting an account cannot reset the shared AI budget. Your local dashboard preferences on this device are removed and you are signed out. Google Calendar events, other local saved work, and independent anonymous usage records remain; use their separate controls below. Other devices may keep local preferences, but their server sessions no longer work.
- In the admin dashboard, open Settings to erase all statistics and the "already added" history, or to forget learned categories.
- Turning off Share anonymous usage count deletes the random install ID.
- Disconnect in Settings stops one-click add; Google's connections page removes the access.
- Removing the extension from Chrome deletes everything it stored.
- Saved work & privacy brings together local data deletion, draft-recovery and analytics controls, Calendar disconnection and links to account-data deletion. Local deletion does not remove Google events or signed-in dashboard metadata.
- Turning off unfinished-draft recovery does not disable save journals or receipts needed for safe recovery and Undo. Those expire as described above or can be deleted locally.