Privacy policy

Last updated: 24 August 2026

FlyCal is a small calendar product. This page explains which personal data the service needs, why it needs it, where it lives, and how you can ask for it to be corrected or deleted.

If you connect Google, the disclosures that Google OAuth verification requires are in section 3 (Google user data): what is accessed, how it is used, with whom it is shared, how it is protected, and retention and deletion.

1. Controller

The controller of personal data processed through FlyCal is:

Antonio Molinari
Via Caselle 6
26032 Ostiano (CR), Italy

Email: support@m6i.it
Site: https://m6i.it
Service: https://app.flycal.it

In this document “FlyCal”, “I”, and “the service” refer to that person acting as a natural person, not as a company.

2. What FlyCal does

FlyCal helps you see when you are free or busy, using Google Calendar as the source of truth. You can sketch availability, look at the same answers from a command-line tool, call an HTTP API, or connect an assistant through the Model Context Protocol (MCP).

A free plan is available. A paid plan with extra features is planned. When billing starts, this policy and the terms will say which payment provider is used. Card numbers will not be stored on FlyCal’s servers.

3. Google user data

This section describes Google user data accessed through Google Sign-In and the Google Calendar API. FlyCal’s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

FlyCal requests read-only Calendar access. It does not request permission to create, update, share, or delete events or calendars in your Google account, and it does not write back to Google Calendar.

3.1 What Google user data is accessed

After you choose to connect Google, FlyCal requests only these OAuth scopes:

From those APIs FlyCal may receive, and in some cases store, the following:

FlyCal does not request Gmail, Drive, Contacts, or other Google products. It does not access Google user data until you complete Google’s consent screen.

3.2 How Google user data is used

Google user data is used only to operate FlyCal for you:

FlyCal does not use Google user data to:

Human access by the operator is limited to providing the service, support you request, and security or abuse investigation.

3.3 With whom Google user data is shared, transferred, or disclosed

I do not sell Google user data. I do not share it with advertisers or data brokers. It is disclosed only as follows:

Google Fonts and jsDelivr may receive your IP address when the web interface loads typefaces or scripts. That is ordinary page delivery, not a transfer of Calendar event contents.

3.4 Data protection for Google user data (including sensitive calendar content)

Calendar events can contain sensitive personal information (for example meeting titles, attendees, or descriptions). FlyCal treats Google Calendar data as confidential account data and applies these measures:

No method of storage or transmission is perfectly safe. If a breach affecting Google user data is confirmed, I will notify you and the authorities when the law requires it.

3.5 Retention and deletion of Google user data

While connected: OAuth tokens, the list of calendars you selected, and related account links are kept for as long as the Google connection (and your FlyCal account) exists, so the product can keep showing availability. Event data fetched from Google is used on demand and may be cached for a short period (on the order of minutes) and then discarded or overwritten.

CLI: tokens stored under ~/.flycal/ remain on your computer until you log out, uninstall the tool in a way that removes them, or delete those files yourself.

How to delete Google user data from FlyCal without closing the Google account itself:

  1. In FlyCal, disconnect Google from your profile. That revokes the app’s stored refresh and access tokens on the server and stops further Calendar API calls.
  2. Optionally revoke FlyCal in Google Account → Third-party access so Google also invalidates the grant.
  3. To erase the FlyCal account and remaining copies (selected calendars, availability sketches, API keys), use Delete account on your profile, or email support@m6i.it from the address on the account. After identity checks (when you write in), deletion from live systems starts without undue delay.

Residual backups of the server disk may hold copies for a short technical window; they are not put back into ordinary use and expire with the backup cycle. FlyCal does not delete events from your Google Calendar when you disconnect: those events stay in Google unless you change them there.

4. Other categories of data

Account

Email address, name, password hash (if you register with email), profile picture URL if Google Sign-In provides one, language preference, and role metadata (for example whether the account is an administrator).

Google Calendar connection

See section 3. In short: OAuth tokens, selected calendars, and event fields needed to compute free/busy, under read-only Calendar scope.

Availability you draw

Time windows you sketch in the web app, plus the generated text summary stored with your account.

API keys, CLI, and MCP

Hashed API keys if you create them. OAuth client registrations, authorisation codes, and access or refresh tokens if you connect an MCP client. The flycal command-line tool keeps Google tokens on your own computer (usually under ~/.flycal/) unless you also use the web app with the same Google account.

Technical and security data

IP address, browser and device information, requested URLs, timestamps, and diagnostic logs needed to run and protect the service. Invitation codes may be stored in a technical cookie while you sign up.

FlyCal is not meant for health data, judicial data, biometric data, or data about children as an ordinary use of the product. Do not upload that kind of material.

5. Purposes and legal bases

Calendar data is used to show you (and tools you authorise) when you are free or busy. It is not used for advertising, resale, or training general-purpose models. Details for Google user data are in section 3.2.

6. Where data is processed

The application runs on a dedicated server in Germany, operated by Hetzner. The stack is a containerised Ruby on Rails app with a local SQLite database on disk, TLS at the reverse proxy, and background jobs on the same host. There is no separate analytics warehouse.

Some processing happens at other providers because the product cannot work without them, as listed below. I prefer to keep the primary copy of account and calendar data in the EU.

7. Recipients and processors

I do not sell personal data. Access is limited to me, to you (for your own account), and to the providers needed to deliver FlyCal. Those providers act as processors or as independent controllers, depending on the service. Recipients of Google user data are listed in section 3.3.

Hetzner Online GmbH

Role: hosting and infrastructure in Germany.
Data: the application database, files, and operational logs.
Location: Germany (EU).

Google

Role: Sign-In and Calendar API. Google is an independent controller of your Google account. FlyCal uses Google as a source of identity and calendar events after you authorise it.
Data: profile and email on sign-in; OAuth tokens; calendar lists and events as returned by the API. See section 3.1.
Location: processing may occur in the EEA and in other countries, under Google’s terms and the transfer tools Google publishes (including adequacy decisions or standard contractual clauses where they apply).

Functional Software, Inc. (Sentry)

Role: error monitoring so crashes can be fixed.
Data: stack traces, request path, and, with personally identifiable information enabled, identifiers such as user id, email, IP address, and user agent. Request parameters may be included; they are minimised where practical.
Location: the project is configured to send events to Sentry’s European ingest endpoint. Residual processing outside the EEA cannot be excluded and, if it occurs, relies on the safeguards Sentry documents for that transfer.

Google Fonts and jsDelivr

The web interface loads the Lato typeface from Google’s font servers and, on screens that show a calendar, the FullCalendar library from the jsDelivr content network. Those requests can expose your IP address and user agent to the respective operator. They are used only to render the interface, not to profile you for FlyCal.

Assistants you connect (MCP)

If you authorise a third-party client (for example a desktop assistant) to call FlyCal over MCP, that client receives the calendar-derived answers you ask for. After the data leaves FlyCal, that provider’s own terms apply. Disconnect the client if you no longer want it to have access.

Future payment provider

When a paid plan is offered, checkout will be handled by a specialised billing provider. FlyCal will receive status of the subscription, not the full card number. This section will name the provider before paid checkout goes live.

8. International transfers

Hosting is in Germany. Google Sign-In, Google Calendar, font delivery, the JavaScript CDN, and error monitoring may involve processing outside the EEA. Where that happens, the transfer rests on an adequacy decision, standard contractual clauses, or another mechanism allowed by Chapter V GDPR, as published by the relevant provider.

9. Retention

You can disconnect Google from your profile, or delete the whole account from the profile page. To delete the account another way, write to support@m6i.it from the address on the account. After identity checks, erasure from live systems starts without undue delay. Residual backup copies are not put back into ordinary use and disappear when the backup cycle ends. Legal retention (for example invoices, once billing exists) is limited to that purpose.

10. Your rights

If GDPR applies to you, you may request access, rectification, erasure, restriction, objection, and portability, and you may withdraw consent where processing is based on consent, without affecting earlier lawful use. You may also lodge a complaint with the Italian Data Protection Authority (Garante per la protezione dei dati personali) or with the authority of your EU/EEA country of residence.

Use support@m6i.it. I will answer within one month, with the extensions GDPR allows for complex cases.

11. Children

FlyCal is not directed at people under 16. I do not knowingly collect their data. If you think a child created an account, contact me and I will delete it.

12. Security

Traffic to the app is encrypted in transit (HTTPS). Passwords are stored as hashes. API keys are stored hashed. Production access is limited to the operator. Error reports help detect failures. Measures specific to Google user data are in section 3.4. No method of storage or transmission is perfectly safe.

13. Related documents

Use of the product is also governed by the terms and conditions. Cookies and similar storage are described in the cookie policy.

14. Changes

This page will change when the product, the hosting, or the law requires it. The date at the top is the current version. Continued use after an update means you have seen the new text; if a change is material, I will try to flag it in the app or by email when I have an address for you.