← Home

Privacy

The Sheet is the personal planner at lisul-elvi.com/plan. Only I use it: it signs in one Google account, mine, and refuses everyone else. Nothing it reads is sold, shared or used for ads.

What it reads from Google

  • Google Calendar: it creates and edits events on one calendar of its own ("Time blocks") and reads my other events so it can plan around them. Those events are read in my browser; only their busy times are stored (see below).
  • Free/busy, every 10 minutes: with a separate grant that can only see when I'm busy ("See the availability on Google Calendars"), the planner's server reads the busy times on my calendars for the week ahead, never an event's title, guests or notes.
  • Gmail, read-only: for the mail accounts I connect, it can list, search and read messages, only when Claude plans my day: when I ask, or each morning as a scheduled Claude task that runs on my own Claude account. It can't send, change, label or delete mail.
  • Gmail, checked every 5 minutes: the planner's server reads each new message's labels, date and a few headers (who it's from and to, and whether it's from a mailing list or an auto-reply), never its text, to tell which threads wait on a reply from me and which I'm waiting on. Promotions, updates, social and forum mail is skipped.

What it reads from other sources

Each of these is read-only, uses a token or link of my own kept as a server secret, and is off until I set it up. Everything it brings in stays private: none of it reaches the public page.

  • Slack, once an hour: it searches my Slack for messages that mention me and direct messages to me, with a token that can only search. For each one, Needs you keeps the channel, the sender's username and a link to the message, never the message text, until I mark it done or for up to 14 days; after that only the message's id is kept, so it isn't shown again. It can't post, react or change anything in Slack.
  • GitHub, once an hour: the open pull requests waiting on my review and the open issues assigned to me, in the organizations I choose, become private tasks: their title, link and milestone due date, never their text.
  • Jira, once an hour: my open tickets become private tasks: their key, summary and due date, never their description.
  • Handshake, once an hour: from my private Handshake calendar link, only interviews and appointments are kept, as busy times with a start and end and nothing else.
  • The academic calendar, once an hour: Stony Brook's public calendar, for the day's entries such as "No classes".
  • Weather, once an hour: the National Weather Service's public hourly forecast and alerts for one point on campus. It needs no account and sends nothing about me.
  • Oura, every 10 minutes: with a grant limited to daily summaries and workouts, so the plan starts after I wake, goes lighter after a rough night or in Rest Mode, keeps the hour before bed free, and ticks my gym habit. Kept for 60 days: my sleep start and end times; each day's sleep, readiness and activity scores and their contributor scores, hours slept, sleep efficiency, deep and REM time, lowest and average heart rate and average HRV during sleep, temperature deviation, steps and stress summary; Oura's suggested bedtime window and hint; each strength or generic workout's day, start, end and type; Rest Mode's start and end days; and whether the ring's battery was low. Nothing else from my ring is kept (no calories, intensity or symptoms). Only I see it: it never reaches the public page, it is never sent to an AI model, including the assistant that plans my day, and it is never shared or used to train or evaluate one, as Oura's API terms require. Disconnecting Oura in Settings deletes its key and all of these.

Where it's kept

My tasks, plan and settings live in my own Supabase database, which only my account can read. The keys that let it read a connected mailbox or my free/busy are kept encrypted there and used only by its server; the other sources' tokens and links are secrets of the server itself. Message bodies aren't stored: mail is fetched when Claude asks and passed to my own Claude app.

  • Needs you: for each email that needs me, the list keeps the sender, the subject and a one-line note for up to 14 days, then deletes it.
  • Busy times: from my calendars and Handshake, saved as start and end only, never titles, and deleted once they end.
  • From the 5-minute mail check: for up to 14 days, each received message's sender address (so I can hide a sender from Needs you) and, for each thread waiting on a reply, the other person's name and the date. The people I've sent mail to are kept only as salted hashes, never as addresses, so the planner can tell a reply from someone I know.
  • Tell Claude messages: what I type or paste into /plan's message box, and what Claude added from it, for 30 days. Only my account can read them.
  • Gym logs: my lift program, sets, records and swaps, owner-only and never on the public page, kept until I delete them.
  • Finished? answers: when I answer a Finished? check on Telegram, it keeps how long the task took against my estimate, and what kind of task it was, for 120 days, so it can learn my pace.
  • Feedback: what I tap (approving or skipping a plan, turning a block down, marking mail done or not needed, each Finished? answer) is kept for 120 days as ids, with the sender's address for mail, so the planner learns what needs me. The senders and domains I choose to always or never show are kept until I remove them.
  • Changes and replans: what kind of thing changed during the day (new mail, a busy time, a course task) and each replan it started, as kinds, counts and ids, for 14 days. When the day is replanned, the scheduled Claude task is told only how many of each kind changed.
  • Sources: the weather forecast and the academic calendar's entries are kept until the next hourly read replaces them.

Google's rules

The Sheet's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

Removing access

Remove a mail account, or disconnect the calendar, in the planner's Settings, which deletes its key, or revoke The Sheet atmyaccount.google.com/connections.

Slack, GitHub and Jira: removing the token from the server, or revoking it in that service, stops the reads at once. Handshake: resetting the calendar link there does the same.

Contact

Questions: elvitigalalis@gmail.com.