Calnio privacy policy

Calnio is run by one person, me, on a server I host myself. This page lists everything it collects, why, who else sees it, how long it is kept, and how to delete it.

Free for one database, one way. $3.99 a month for two-way and all of them, the first 7 days free with no card. Nothing to install.

What Calnio stores

Only what a sync needs to run. Last updated October 30, 2026.

From Google sign-in

Your name, email address, profile picture and Google account id. Signing in asks Google for nothing more than that, and keeps no Google tokens. Google Calendar is a separate connection, below. With your account, Calnio keeps your plan, the day your trial ends, and the ref of the link you arrived from, if it had one.

From Notion

An access token limited to the pages you share with Calnio, plus your workspace name and icon. For each database you sync: its id, its name and which columns are used.

From each page, Calnio reads only the title and the columns a sync uses: the date column, and for a Todoist sync also the done and priority columns. Page content is never read.

From iCloud

Your Apple Account email and an app-specific password, never your Apple Account password. The names and addresses of the calendars Calnio writes to.

From Google Calendar

If you connect Google Calendar: an access token and a refresh token, the permission you granted, and the Google account id and email it belongs to. For each database you sync: the id and name of the Google calendar it goes into.

To show you where a database can go, Calnio lists your calendars' names and whether you may edit them, and keeps only the one you pick. From a synced calendar it reads each event's title, start, end, whether it repeats and whether it has guests. Descriptions, locations, guests and attachments are never kept.

From Todoist

If you connect Todoist: an access token and a refresh token, your Todoist email, name, account id and timezone, and the permissions you granted. For each project you sync: its id and name.

Todoist reports changes for every project at once, so Calnio reads them all and keeps only tasks in a project you sync. A task's description, comments and labels are never kept.

For each synced item

For a calendar event, in Apple Calendar or Google Calendar: its title, its start and end, whether it is all day, and the ids that link the Notion page to the event. For a Todoist task: its title, due date, whether it is done, its priority, and the ids that link it to the page. This is how Calnio tells which side was edited.

From Stripe

If you subscribe: your Stripe customer id, the status of your subscription, and the dates its trial and current period end. Never your card number, which only Stripe sees.

Sync history

When each sync ran, how long it took, how many items it changed, and the error if it failed. Kept for 90 days.

Emails I send

Each email I send from Calnio, with the accounts it went to, and whether you unsubscribed. I write these by hand, about your setup or about Calnio itself. Every one has an unsubscribe link at the bottom.

What Calnio changes in your accounts

In Apple Calendar

Calnio creates calendars named after your databases, and creates, updates and deletes the events in them. Events you made yourself are only changed when two-way sync is on for that calendar.

In Google Calendar

Calnio creates calendars named after your databases, unless you pick one of yours, and creates, updates and deletes the events in them. Events you made yourself are only changed when two-way sync is on for that calendar. Your other calendars are never written to.

In Todoist

Calnio creates projects named after your databases, and creates, updates, completes, reopens and deletes the tasks in them. A task you add to a synced project becomes a Notion page. Tasks in other projects are left alone, unless one Calnio made was moved there.

In Notion

Nothing, unless you switch two-way sync on for a calendar sync, or sync the database with Todoist. Then Calnio changes the title and date of a page when you edit its event or task, and for Todoist also whether it is done and its priority. It creates a page for a new event or task, and moves a page to the trash when you delete its event or task.

Who else handles it

Google, Notion, Apple and Todoist

The services you connect. Calnio sends them only what a sync needs, and only to your own accounts.

Cloudflare

Connects calnio.app to the internet, so every request passes through it.

Resend

Sends the emails I write from Calnio: it gets your name, email address and the email.

Stripe

Takes payment. It gets your email and account number, and only Stripe sees your card.

My own tools

Tools I use to run Calnio, such as notifications to my own phone, can see your email.

Analytics, cookies and logs

Analytics

Calnio uses Umami, which I host myself at analytics.calnio.app. It counts page views, where visitors came from, device type and page speed.

The pages and the server also send a few events about setup and the trial, with no name, email, password or database name.

Its recorder records clicks and scrolling for heatmaps and session replays. What you type is masked, but text on the screen can appear in a recording.

No advertising trackers, and no third-party analytics.

Cookies

Two sign-in cookies that scripts on the page cannot read: one lasts 5 minutes, the other 30 days and keeps you signed in. A short session cookie protects the sign-in itself. No advertising cookies.

Server logs

Each sync writes what it did to a log, under your account number. Logs are kept for 14 days, warnings and errors for 30. They never contain passwords or tokens.

Keeping it safe, and taking it back

How it is protected

The Notion token, the Google Calendar and Todoist tokens and the iCloud password are encrypted before they reach the database. I never sell your data, never share it for advertising, and use Google sign-in data only to create and identify your account.

Data from Google

Calnio uses what it reads from Google Calendar only to keep your Notion databases and calendars in step. It is never used for advertising, never sold, and never passed to anyone except to run your syncs. Nobody reads it, except me when you ask for help with a sync, or when the law requires it.

Calnio'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.

Revoking access

Disconnecting Notion in Calnio revokes the grant on Notion's side. You can also remove Calnio in Notion under Settings, Connections.

Disconnecting Google Calendar in Calnio revokes the grant on Google's side and removes your Google Calendar syncs. Their events stay in your calendars. You can also remove Calnio in your Google Account under Security, Your connections to third-party apps and services.

Disconnecting Todoist in Calnio revokes the grant on Todoist's side and removes your Todoist syncs. You can also remove Calnio in Todoist under Settings, Integrations.

For iCloud, revoke the password at account.apple.com, under Sign-In and Security, App-Specific Passwords.

Deleting a sync

Deleting a calendar sync deletes the events it created in Apple Calendar or Google Calendar and the links Calnio kept for them. Deleting a Todoist sync deletes only the links: its tasks and pages stay. Run history stays until it is 90 days old or you delete your account.

Deleting your account

Settings, Delete account removes your account and everything in the database about it at once, cancels any subscription at once, and revokes Notion, Google Calendar and Todoist access. Logs age out within 30 days. Events already in Apple Calendar or Google Calendar, tasks in Todoist and pages in Notion stay. They are yours.

Questions, or a request to see or delete your data: write to [email protected]. When this policy changes, the date at the top changes with it.