Spent — read your calendar as a statement of where your time went
Spent
Where did your time go?
Read-only, and we hand the permission back the moment we have finished. Your calendar is read in this tab and never uploaded. What Google is asked for.
or
A .ics export from Google, Apple or Outlook. It is read here, in this tab, and never uploaded.
Where does my calendar go?
Nowhere. Whether you connect Google or drop a file, the events are read inside this browser tab by JavaScript running on your machine, and there is no server here that could store them. When you connect Google, the permission is issued to this page — not to us — and the page asks Google for your events directly. The only thing that ever leaves is the titles of the handful of recurring commitments our rules could not recognise, so a model can name them: no dates, no people, no durations, nothing that identifies you. There is a switch on the page to stop even that.
What exactly is Google being asked for?
One read-only scope, calendar.readonly. This app can never create, change or delete anything in your calendar — the permission to do so is not requested and could not be used. We ask for thirty days first, and only ask for more if you unlock the full statement. When the reading is finished the access is handed back to Google immediately, so nothing here keeps a standing key to your calendar. You can also revoke it yourself at any time at myaccount.google.com/permissions, under Third-party apps & services. The full account of what is read, what is kept and what is never done with it is in the privacy policy at /privacy#google-user-data.
I would rather not connect anything.
Then use a file, and nothing is connected. The statement is identical either way — it is the same code reading the same events.
Why did Google warn me about this app?
Because calendar access is a sensitive permission and Google verifies apps that ask for it, which takes weeks. Until that review is finished you may see an "unverified app" screen. It is not a sign that anything is wrong with the request — the scope is still read-only — but it is a fair reason to use the file route instead if you would rather.
How do I get the file?
Google Calendar: Settings → Import & export → Export. That gives you a zip; unzip it and drop the .ics inside. Apple Calendar: File → Export → Export. Outlook: File → Save Calendar, then choose iCalendar format. Any of the three works, and it takes under a minute.
How accurate is the categorising?
Most of it is deterministic — rules over the words people put in calendar titles, plus the shape of the entry: how many were invited, how long it ran, what time of day, whether it repeats. Whatever survives that is either named by a model or left unclassified, and the page tells you exactly how many hours were left unclassified rather than quietly filing them under work.
What does the €9 buy?
The same arithmetic over your whole history instead of the last thirty days: every year side by side, the people you have spent the most scheduled hours with, what each recurring commitment has cost across its life, the things that quietly stopped, and the ability to drill from a year down to a single Tuesday morning. One payment, no account, nothing to cancel. If you connected Google, unlocking reads further back without asking you to approve anything a second time.
Is this a productivity tool?
No. It does not suggest anything, block anything, or tell you what to do differently. It observes and reports. What you do with the observation is not our business.
What this cannot do
Connected calendars are read carefully. A meeting you declined does not count, a room booking is not a person, and a working-location marker is not an hour of anything. All three are thrown away before the arithmetic starts.
It only reads what your calendar was told. A meeting somebody accepted and then skipped still counts, because nothing in the file says otherwise. A calendar records intentions, and this is a statement about intentions kept.
A calendar is not a life. It holds what somebody had to book. The hours that were simply lived are not in the file and cannot be in the statement, and the people who matter most are frequently the ones you never had to schedule.
It cannot know what an entry meant. A recurring hour with one other person is almost always a 1:1 and occasionally the most important conversation of somebody’s week. The categories are a reasonable reading, not a truth, and anything we could not read is reported as unclassified rather than guessed.
The lock on the paid half is soft. Because the analysis runs on your machine, the gate does too — somebody who reads our JavaScript can get past it. The alternative was taking a copy of everyone’s calendar in order to hold a door shut, and we would rather have the honest lock than the honest-looking one.