Політика конфіденційності Kairoscope
Востаннє оновлено: 21 серпня 2026.
1. Контролер даних
Дані обробляє Yevhen Orestov (фізична особа, оператор Kairoscope), Україна. Контакт із питань даних: kairoscope.contact@gmail.com.
2. Які дані ми зберігаємо
| Категорія | Що саме |
|---|---|
| Акаунт | Email, хешований пароль, ім'я, часова зона, мова, тема, формат часу, телефон (опціонально), аватар (якщо завантажив) |
| Календар | Події, задачі, категорії, шаблони дня, нотатки, цілі часу, вкладені файли (якщо додаєш) |
| Соціальне | Друзі, групи, спільний доступ до подій і задач, повідомлення у спільних сесіях |
| Push | Підписка на push-сповіщення (браузер, FCM, APNs через Expo), журнал надісланих нагадувань |
| Щоденник емоцій (дані про здоров'я, ст. 9) |
Записи стану: дві шкали самопочуття, лейбли емоцій, тілесна карта (позначені зони тіла), тригери, вільна нотатка (зашифрована), час, необов'язкова прив'язка до події; «моменти» (лише мітка часу); ранкові й вечірні чек-іни настрою та втоми |
| Ліки (дані про здоров'я, ст. 9) |
Назви й мітки препаратів (зашифровані), розклад прийому, статус кожної дози (прийнято чи пропущено) і час |
| Самопочуття (дані про здоров'я, ст. 9) |
Погодинні відмітки енергії, налаштування бюджету сил — зокрема твої списки того, що виснажує й що відновлює |
| AI-чат | Історія розмов з асистентом (зміст зашифровано), лічильники використання AI-функцій |
| Голос (тимчасово) | Аудіо для розпізнавання мовлення — надсилається до Groq (whisper-large-v3-turbo), з резервом OpenAI Whisper; не зберігається після транскрипції |
| Синхронізація | OAuth-токен зовнішнього календаря (зашифрований) та імпортовані події — лише якщо ти сам підключив Google/Microsoft |
| Локація (преміум) | Точні GPS-координати та адреси (дому, подій, збережених місць) — обробляються Google Maps Platform для гео-нагадувань, підказок адрес і розрахунку часу в дорозі; лише коли ти користуєшся цими функціями |
| Посилання на календар (ICS) | Унікальний токен підписки, якщо ти вмикаєш цю функцію — зберігається у хешованому й зашифрованому вигляді (див. §10) |
| Підписка | Ідентифікатор твого акаунта в системі покупок, статус підписки, використані промокоди |
| Аналітика (мобільний застосунок) | Знеособлений ідентифікатор екземпляра застосунку, модель пристрою, версія ОС, мова, приблизна країна за IP-адресою, події «реєстрація» і «вхід» (див. §13) |
| Технічні дані | IP-адреса (обмеження частоти запитів і захист від зловживань), звіти про збої застосунку (версія, пристрій, послідовність екранів, ідентифікатор акаунта) |
| Зворотний зв'язок | Email, ім'я і текст повідомлення, якщо ти пишеш нам через форму |
| Гість бронювання | Ім'я та email людини, яка забронювала час за публічним посиланням користувача. Зберігаються в окремих полях самої події; ім'я також входить у назву події. Ця людина не має акаунта в Kairoscope — див. окремий абзац у §3 |
3. Навіщо ми обробляємо дані і на якій підставі
| Мета | Категорії даних | Правова підстава |
|---|---|---|
| Створення й ведення акаунта, вхід, відновлення пароля | Акаунт | ст. 6(1)(b), виконання договору |
| Показ календаря: події, задачі, категорії, шаблони, вкладення | Календар | ст. 6(1)(b) |
| Нагадування (push, email) | Push, час подій | ст. 6(1)(b) |
| Спільний доступ із друзями та групами | Соціальне | ст. 6(1)(b) |
| Синхронізація зовнішнього календаря (лише читання) | Синхронізація | ст. 6(1)(a), згода — ти підключаєш її сам і можеш відключити |
| Щоденник емоцій, тілесна карта, тригери, нотатки, чек-іни | Дані про здоров'я | ст. 9(2)(a), явна згода, разом зі ст. 6(1)(a) — див. §4 |
| Нагадування про ліки й історія прийому | Дані про здоров'я | ст. 9(2)(a), явна згода, разом зі ст. 6(1)(a) — див. §4 |
| Бюджет сил і погодинні відмітки енергії | Дані про здоров'я | ст. 9(2)(a), явна згода, разом зі ст. 6(1)(a) — див. §4 |
| AI-функції над текстом: чат, категоризація, підказки, планування дня, підказка про втому за день, підказка про відновлення | Назви подій і задач, час, вільні слоти; для підказки про втому за день, підказки про відновлення й планування дня — ще й твої списки виснажливого й відновлювального | ст. 6(1)(a), згода — перемикач «AI-функції» в Налаштуваннях. Для списків виснажливого й відновлювального це водночас особлива категорія (ст. 9(2)(a)) — див. застереження в §4 |
| AI над щоденником: голос у лейбли, тижневий огляд | Аудіо, агрегати щоденника | ст. 9(2)(a), окрема явна згода — перемикач «ШІ для настрою» |
| Гео-нагадування, «виїхати вчасно», підказки адрес | Локація | ст. 6(1)(a), згода |
| Підписка та платежі | Підписка | ст. 6(1)(b), виконання договору |
| Захист від зловживань, обмеження частоти запитів, звіти про збої | Технічні дані | ст. 6(1)(f), законний інтерес у безпеці й працездатності сервісу |
| Відповідь на звернення через форму зворотного зв'язку | Зворотний зв'язок | ст. 6(1)(f), законний інтерес у розгляді звернення |
| Вимірювання ефективності реклами застосунку | Аналітика | Згода (ст. 6(1)(a)); без згоди аналітика не запускається, перемикач у Налаштуваннях. Діє у версії застосунку 1.0.2 і новіших — див. §13 |
| Бронювання часу за публічним посиланням | Гість бронювання | ст. 6(1)(f), законний інтерес обох сторін у проведенні домовленої зустрічі |
Якщо ти бронюєш час за чужим посиланням. Коли хтось ділиться посиланням Kairoscope на бронювання, а ти обираєш слот, ми зберігаємо вказані тобою ім'я та email, щоб власник календаря знав, з ким зустріч. Правова підстава — законний інтерес обох сторін у проведенні домовленої зустрічі (ст. 6(1)(f)). Ім'я стає частиною назви події в календарі власника, тож його побачить будь-хто, кому власник покаже свій календар або з ким поділиться цією подією; email бачить лише сам власник. Email лежить лише на нашому сервері в Німеччині й не передається нікуди більше. Про ім'я так сказати не можна, і тому воно згадане тут окремо: воно є частиною назви події, а назва події покидає наш сервер разом зі звичайними діями власника — потрапляє в текст push-нагадування, якщо власник поставить нагадування на цю подію (Expo, Apple, Google, США), до OpenAI (США), якщо він скористається AI-функціями для цього дня, до постачальника зовнішнього календаря, якщо він підписав туди свою стрічку, і в push другові, з яким він поділиться подією. Ці отримувачі, країни й механізми передачі перелічені в §7 і §8. Ці дані зберігаються стільки, скільки існує сама подія. Ти можеш попросити нас їх видалити — напиши на kairoscope.contact@gmail.com: ми приберемо ім'я з назви події й зітремо ім'я та email, сама подія лишиться у власника. Ти маєш ті самі права, що описані в §12, хоч і не маєш тут акаунта.
4. Дані про здоров'я
Особлива категорія даних (ст. 9 GDPR). Щоденник емоцій, тілесна карта, тригери, нотатки стану, чек-іни настрою й втоми, погодинні відмітки енергії, а також розклад і статус прийому ліків є даними про здоров'я. Ми обробляємо їх на підставі твоєї явної згоди (ст. 9(2)(a) разом зі ст. 6(1)(a)) і лише для того, щоб показувати тобі твої власні записи, нагадування й тренди.
Сьогодні ця згода виражається тим, що ти сам вмикаєш ці функції й створюєш записи. Окреме підтвердження згоди, яке фіксує дату й версію цього тексту, ми зараз додаємо — ця сторінка оновиться разом із ним.
Обидві функції не працюють, доки ти сам їх не почнеш: запис у щоденнику з'являється тільки тоді, коли ти його створюєш, а нагадування про ліки — тільки коли ти сам додаєш розклад.
Ці дані ніколи не використовуються для реклами й ніколи не показуються друзям. Записи щоденника та дані про ліки не потрапляють до AI-провайдерів без окремої згоди «ШІ для настрою» (§5). Один виняток називаємо прямо: щойно ти вмикаєш загальний перемикач «AI-функції», твої списки того, що виснажує й що відновлює, ідуть до OpenAI разом із розкладом дня — у підказці про втому за день і в плануванні дня; у підказці про відновлення надсилається список відновлювального. Окремо відкривати підказку про втому для цього не треба: досить скористатися будь-якою з цих функцій. Це відбувається під загальною згодою на AI, а не під «ШІ для настрою». Самі погодинні відмітки енергії та чек-іни настрою й втоми туди не надсилаються. Вільна нотатка щоденника, назва препарату й повідомлення AI-чату зашифровані на рівні поля; решта сигналів щоденника (лейбли емоцій, зони тіла, тригери, шкали) зберігається без шифрування поля, бо саме з них рахуються твої тренди.
Нагадування про ліки й текст сповіщення. Назва препарату може розкрити діагноз, тому в базі вона зашифрована на рівні поля — і тому ж вона типово не потрапляє в текст сповіщення. Пуш каже лише «Час прийняти ліки», а конкретну назву застосунок бере з нашого ж API і показує вже на пристрої. Причина проста: сповіщення йде до тебе через посередників — Expo (650 Industries, США), а далі Apple APNs або Google FCM — і текст сповіщення вони читають. У Налаштуваннях → «Прийом ліків» є перемикач «Показувати назву препарату в сповіщеннях», типово вимкнений; якщо ти його ввімкнеш, назва буде і в цих сервісах, і на екрані блокування твого телефона. Чого цей перемикач не приховує в жодному стані: сам факт, що ти отримуєш нагадування про ліки, і час цих нагадувань — сповіщення позначене як медичне, щоб кнопка «Прийнято» працювала й щоб Android не приглушив його разом зі звичайними нагадуваннями. Прибрати й це означало б відмовитися від серверних нагадувань про ліки взагалі. Веб-пуш шифрується наскрізно (VAPID), тож там текст не читає навіть служба доставки; перемикач усе одно діє й на нього, бо «показувати назву в сповіщеннях» — одна обіцянка, а не дві.
Щоденник можна вивантажити окремим файлом JSON або стерти повністю, не видаляючи акаунт: Налаштування → «Щоденник емоцій», і в мобільному застосунку, і у веб-версії. Він також входить у загальний експорт акаунта (§12) і стирається разом з акаунтом. Розклади ліків видаляються поштучно в розділі «Ліки», разом із історією доз цього розкладу; копію даних про ліки дає експорт акаунта. Для чек-інів настрою й втоми та погодинних відміток енергії окремої кнопки стирання зараз немає взагалі — детально про це в §11.
5. AI-обробка
AI-функції (розпізнавання голосу, чат, категоризація, підказки) активуються лише після згоди в профілі й надсилають до AI-провайдерів мінімум потрібного контексту — назви подій, час, вільні слоти, а для підказки про втому за день, підказки про відновлення й планування дня ще й твої списки виснажливого й відновлювального (§4). Текстові функції (чат, категоризація, підказки) обробляє OpenAI; розпізнавання мовлення (голос→текст) обробляє Groq (whisper-large-v3-turbo), з резервом OpenAI Whisper. Записи щоденника емоцій ідуть до AI лише під окремою згодою «ШІ для настрою» плюс підтвердженням віку 16+; для тижневого огляду сервер рахує агрегати й не надсилає самих нотаток. Факти рахуються детерміновано на нашому сервері; AI сам не приймає рішень без твого підтвердження.
Автоматизовані рішення (ст. 22 GDPR). Kairoscope не ухвалює щодо тебе рішень виключно автоматизовано і не здійснює профілювання з юридичними чи подібними істотними наслідками. AI лише пропонує: створити подію, підказати лейбл емоції, знайти вільний слот. Кожна пропозиція застосовується тільки після твого підтвердження в інтерфейсі, а сервер відкидає пропозиції, які посилаються на неіснуючі події чи контакти. Факти (накладки, вільні слоти, статистика) рахуються детерміновано на нашому сервері, а не мовною моделлю. Картка кризової підтримки спрацьовує від детермінованого пошуку фраз на твоєму пристрої, нікуди не надсилається, нікого не сповіщає й ніколи не блокує збереження запису.
6. Де зберігаються дані
PostgreSQL, файли вкладень і резервні копії — на сервері Hetzner Online GmbH у Німеччині (ЄС). Резервні копії зашифровані.
7. Міжнародні передачі
Основне сховище перебуває в ЄС, але частина обробки відбувається у постачальників зі США: OpenAI, Groq Inc., RevenueCat Inc., Expo (650 Industries, Inc.), Google LLC (Firebase, FCM, Maps, SMTP), Apple Inc. (APNs), Microsoft Corp. (синхронізація календаря). Перелік із зазначенням того, що саме передається, — у §8. Дані щоденника емоцій передаються до США лише якщо ти окремо ввімкнув «ШІ для настрою»; без цього вони не залишають ЄС.
Сам оператор Kairoscope перебуває в Україні — країні, щодо якої Європейська Комісія не ухвалювала рішення про адекватність, тож доступ оператора до даних теж є передачею за межі ЄЕЗ.
Механізмами таких передач за ст. 46 GDPR є стандартні договірні положення Комісії ЄС у складі угод про обробку даних із постачальниками та, де вона діє, сертифікація одержувача за EU-US Data Privacy Framework. Оформлення цих угод із кожним постачальником ми зараз завершуємо; актуальний стан і копію чинних гарантій можна запитати на kairoscope.contact@gmail.com. Ця сторінка оновиться, щойно оформлення буде завершено.
8. З ким ділимось даними
| Отримувач | Що передаємо | Навіщо | Країна |
|---|---|---|---|
| Hetzner Online GmbH | Усі дані сервісу (хостинг) | Розміщення бази, файлів і резервних копій | Німеччина |
| OpenAI | Назви подій і задач, час, вільні слоти, повідомлення чату, списки виснажливого й відновлювального (для підказки про втому за день, підказки про відновлення й планування дня); аудіо як резерв | Текстові AI-функції, резервне розпізнавання мовлення | США |
| Groq Inc. | Аудіо голосового вводу | Розпізнавання мовлення, основний провайдер | США |
| Google / Microsoft | OAuth-токен, читання твого календаря | Синхронізація, лише якщо ти її підключив | США |
| Google Maps Platform | Координати й адреси | Гео-нагадування, час у дорозі, підказки адрес | США |
| Google FCM, Apple APNs, Expo (650 Industries) | Push-токен і текст сповіщення, зокрема назви подій. Назва препарату — ні: типово нагадування про ліки каже лише, що час прийняти дозу, а назву застосунок показує сам (див. §4). Якщо ти сам увімкнеш перемикач «Показувати назву препарату в сповіщеннях», назва потрапить і сюди | Доставка нагадувань на пристрій | США |
| Google (Gmail SMTP) | Email-адреси й зміст листів | Верифікація, скидання пароля, email-нагадування | США |
| RevenueCat Inc. | Ідентифікатор твого акаунта Kairoscope, ідентифікатор покупки, статус підписки | Перевірка статусу підписки | США |
| Firebase Analytics (Google) | Знеособлений ідентифікатор екземпляра застосунку, модель пристрою, версія ОС і застосунку, мова, приблизне місце за IP; події реєстрації й входу плюс стандартний автонабір Firebase (запуски, початки сесій, час взаємодії, оновлення застосунку та ОС) | Вимірювання ефективності реклами застосунку (§13) | США |
| Apple, Google | Дані транзакції | Обробка платежів у магазинах застосунків | США |
| GlitchTip | Версія застосунку, пристрій, послідовність екранів, ідентифікатор акаунта | Звіти про збої; це наш власний сервер, а не третя сторона | ЄС |
Крім того, якщо ти вмикаєш погоду на день, твій пристрій сам звертається до сервісу прогнозу Open-Meteo з координатами, округленими приблизно до кілометра. Ці координати не проходять через наш сервер і ми їх не зберігаємо.
Так само повз наш сервер працюють кнопки входу через Google і Apple у веб-версії: коли ти відкриваєш сторінку входу або реєстрації, твій браузер підвантажує скрипти цих кнопок із accounts.google.com (Google Identity Services) і appleid.cdn-apple.com (Sign in with Apple). Це стається при відкритті сторінки, ще до того, як ти щось натиснув, тож твоя IP-адреса й адреса цієї сторінки стають відомі Google і Apple, навіть якщо ти врешті входиш паролем або просто закриваєш вкладку. Ці запити йдуть із твого пристрою, ми їх не бачимо й нічого з них не зберігаємо; що з ними робить провайдер — визначає він, а не ми. У мобільному застосунку так не відбувається: там екран входу нічого не підвантажує, а вхід через Google чи Apple починається лише з натискання відповідної кнопки.
Дані не продаються. Про появу нового отримувача ми повідомляємо в застосунку.
9. Локація
Kairoscope отримує доступ до точного місцезнаходження пристрою лише коли ти вмикаєш функцію, якій воно потрібне (гео-нагадування, «виїхати вчасно», підказки адрес). Ми збираємо GPS-координати та адреси (дому/подій), які ти вводиш, і використовуємо їх, щоб спрацьовували гео-нагадування (коли ти приходиш у місце чи покидаєш його), розраховувати час у дорозі й нагадування про виїзд та автодоповнювати адреси. Для гео-нагадувань застосунок звертається до місцезнаходження у фоновому режимі — лише щоб зіставити його з місцями, які ти сам задав; саме зіставлення відбувається на пристрої, і ці фонові координати нікуди не надсилаються. Координати й адреси, які ти зберігаєш, а також твоя поточна позиція, коли для події працює підказка «виїхати вчасно», надсилаються до Google Maps Platform для розрахунку маршрутів, часу в дорозі та підказок адрес. Якщо увімкнена погода на день, координати, округлені приблизно до кілометра, ідуть із твого пристрою до сервісу прогнозу Open-Meteo. Ти можеш будь-коли прибрати гео-умову з нагадування, видалити збережені місця й відкликати дозвіл на локацію в налаштуваннях системи. Локація не використовується для реклами й не продається.
10. Посилання на календар (ICS)
Якщо ти вмикаєш підписку на календар, ми створюємо унікальне посилання, яке віддає твій календар без пароля: будь-хто, хто отримає це посилання, побачить усі твої події — і не лише назву та час, а й текст нотатки та адресу місця кожної події, за весь час, а не тільки за сьогодні. Нотатка — це той самий вільний текст, який §14 називає найчутливішим, тож стався до цього посилання як до ключа від усього календаря, а не до переліку назв. Сам токен ми зберігаємо у хешованому й зашифрованому вигляді, тож із бази його не прочитати. Не публікуй посилання. Окремої кнопки відкликання зараз немає: якщо посилання потрапило не туди, напиши на kairoscope.contact@gmail.com — ми його замінимо.
11. Строки зберігання
| Категорія | Строк |
|---|---|
| Акаунт, календар, задачі, категорії, шаблони, вкладені файли, а також решта створеного тобою в застосунку: збережені місця, посилання для бронювання, цілі часу, «якщо-то» продовження, приховані імпортовані події | Доки існує акаунт. Видалення акаунта в Профілі стирає їх одразу, разом із файлами вкладень |
| Ім'я та email гостя, який забронював час за твоїм посиланням | Доки існує сама подія в календарі власника. Зникають разом із подією, з видаленням акаунта власника, або раніше — на запит самого гостя (див. абзац про бронювання в §3) |
| Щоденник емоцій: записи стану й «моменти» | Доки існує акаунт або доки ти сам їх не зітреш — окремий запис з його картки, увесь щоденник кнопкою в Налаштуваннях → «Щоденник емоцій» (застосунок або веб). Автоматичного строку ми не встановлюємо: це твій особистий архів, і рішення про його давність лишається за тобою |
| Ліки: розклади й історія доз | Доки існує акаунт або доки ти сам не видалиш розклад у розділі «Ліки» — разом із розкладом зникає й історія його доз |
| Чек-іни настрою й втоми, погодинні відмітки енергії | Доки існує акаунт. Кнопки, яка стирає саме ці записи, у застосунку зараз немає: чек-ін за день можна перезаписати новим значенням, стирання щоденника їх не зачіпає, і самі вони зникають разом з акаунтом. Видалити їх раніше можна на запит листом (§12). Автоматичного строку ми не встановлюємо |
| Аудіо голосового вводу | Не зберігається: передається провайдеру розпізнавання і відкидається одразу після отримання тексту |
| Історія чату з асистентом | Доки існує акаунт. Автоматичного строку ми не встановлюємо: це твоя переписка, і застосунок показує її тобі |
| Чат живої сесії події | 90 днів |
| Незбережена чернетка події | 30 днів з останньої зміни. Це те, що ти почав друкувати у формі й не зберіг; збережена подія — рядок вище |
| OAuth-токени синхронізації календаря | Доки синхронізацію підключено; відключення в Профілі видаляє їх |
| Токени оновлення сесії | До закінчення строку; прострочені видаляє щоденне завдання |
| Токени підтвердження email і скидання пароля | До закінчення строку (посилання живе години); прострочені видаляє щоденне завдання, використані — одразу при використанні |
| Токени пуш-сповіщень на пристрої | Доки пристрій активний. Токен, з яким застосунок не запускався понад 180 днів, видаляється; наступний запуск реєструє його знову |
| Лічильники використання AI-функцій (квоти безкоштовного рівня) | 24 місяці |
| Журнал надісланих нагадувань | 2 доби |
| Відкладені («ще 10 хвилин») нагадування | 1 доба |
| Сповіщення у застосунку | Прочитані видаляються через 30 днів; непрочитані лишаються, доки існує акаунт |
| Зашифровані резервні копії | 7 днів (архіви вкладених файлів — 3 дні), далі видаляються. Стільки ж часу видалені дані можуть існувати в копії |
| Технічні логи сервера | Зберігаються не довше, ніж потрібно для діагностики й захисту від зловживань |
| Звіти про збої | Доки потрібні для виправлення відповідної помилки |
| Повідомлення через форму зворотного зв'язку | 24 місяці, або раніше на твій запит. Якщо ти надсилав його з адреси свого акаунта і ця адреса підтверджена, видалення акаунта стирає й повідомлення разом з ім'ям і адресою. Повідомлення, надіслані з іншої адреси, ми не можемо приписати акаунту й не стираємо разом з ним: форма працює й без акаунта. Так само ми не стираємо повідомлення з адреси, яку не можемо однозначно зв'язати з одним акаунтом (наприклад, якщо два акаунти відрізняються в ній лише великими й малими літерами): приписати таке повідомлення комусь одному ми не маємо підстав, і воно зникає за загальним строком вище. Код підтвердження email для цієї форми живе 10 хвилин, використаний зникає одразу, невикористані прибирає щоденне завдання |
| Записи про підписку | Доки існує акаунт. Дані самої транзакції зберігають Apple, Google і RevenueCat за власними строками |
| Записи про згоди: що саме, коли й яку редакцію тексту ти прийняв | Доки існує акаунт. Це доказ того, що згода була (ст. 7(1)), тож він живе стільки ж, скільки акаунт, і зникає разом з ним. Відкликання не стирає запис, а додає новий рядок про відкликання |
12. Твої права
Твої права. Ти маєш право: отримати доступ до своїх даних і копію в машинозчитуваному форматі JSON (ст. 15, 20); виправити неточні дані (ст. 16); видалити їх, «право бути забутим» (ст. 17); обмежити обробку (ст. 18); заперечити проти обробки, яку ми здійснюємо на підставі законного інтересу (ст. 21); відкликати будь-яку згоду.
Як скористатись. Експорт усіх даних у форматі JSON і видалення акаунта — у Профілі, без звернення до нас, у веб-версії й у мобільному застосунку. Окремий експорт і стирання щоденника емоцій — Налаштування → «Щоденник емоцій», в обох версіях. Згода на дані про здоров'я (і її відкликання), перемикач AI-функцій, окрема згода «ШІ для настрою» й підтвердження 16+ також є в обох версіях, у Налаштуваннях. Решта запитів, зокрема зміна email, обмеження обробки й заперечення, — листом на kairoscope.contact@gmail.com. Ми відповідаємо упродовж одного місяця з дня запиту; у складних випадках строк може бути подовжено ще на два місяці, і ми повідомимо про це в межах першого місяця (ст. 12(3)). Ми можемо попросити підтвердити особу листом з адреси акаунта, якщо маємо обґрунтовані сумніви.
Відкликання згоди діє на майбутнє й не робить незаконною обробку, що відбулася до відкликання (ст. 7(3)). Дані, вже надіслані до OpenAI чи Groq для виконання твого запиту, ми не можемо відкликати з їхніх систем.
Скарга. Якщо вважаєш, що ми обробляємо твої дані з порушенням, ти маєш право подати скаргу до наглядового органу із захисту даних за місцем свого проживання, місцем роботи або місцем гаданого порушення. Перелік органів держав-членів ЄС: edpb.europa.eu/about-edpb/about-edpb/members_en. В Україні наглядовим органом є Уповноважений Верховної Ради України з прав людини: ombudsman.gov.ua. Звертатися спершу до нас не обов'язково, але зазвичай так питання вирішується швидше.
13. Кукі, локальне сховище й аналітика
Кукі та локальне сховище. У вебі: HttpOnly cookie для refresh-токена автентифікації, localStorage для теми, мови та кешу сесії; два ключі з персональними даними (округлені координати для погоди й твої нотатки про відновлення) стираються при виході з акаунта. У мобільному застосунку refresh-токен лежить у захищеному сховищі ОС (Keychain / Android Keystore), а черга офлайн-змін і нотатки про відновлення — в окремому зашифрованому локальному сховищі, ключ до якого зберігає та сама ОС; при виході з акаунта вони стираються разом із завантаженими вкладеннями. Налаштування вигляду (тема, мова) лишаються — вони не є персональними даними. Рекламних кукі й піксельних трекерів у вебі немає.
Аналітика. З твоєї згоди ми використовуємо Firebase Analytics (Google Ireland Ltd. і Google LLC), щоб оцінювати ефективність реклами застосунку. Сам застосунок надсилає дві події — реєстрацію та вхід. Понад те Firebase збирає власні стандартні події користування: запуски застосунку, початки сесій, час взаємодії, оновлення застосунку та операційної системи. Разом із ними передаються знеособлений ідентифікатор екземпляра застосунку, модель пристрою, версія ОС і застосунку, мова та приблизне місце, визначене за IP-адресою. Вимкнути ці автоматичні події поодинці технічно неможливо — згода діє на весь набір. Автоматичне звітування про перегляди екранів ми вимкнули, зміст твого календаря, задач і щоденника не передається, рекламний ідентифікатор пристрою ми не збираємо. Без згоди аналітика не запускається взагалі. Згода дається окремо на кожному пристрої й не переноситься між ними; змінити рішення можна будь-коли в Налаштуваннях. Це стосується версії застосунку 1.0.2 і новіших. Перемикач працює в коді самого застосунку, тому на раніших версіях, установлених на пристрої, аналітика й далі збирається без нього; оновлення застосунку вмикає гейт. У веб-версії сторонньої аналітики немає взагалі, але сторінка входу підвантажує скрипти кнопок входу Google і Apple (§8) — і вже цим показує їм твою IP-адресу.
14. Безпека
Транспорт: HTTPS (TLS 1.2 і 1.3, HSTS). Автентифікація: JWT разом із refresh-токеном у HttpOnly-куці, паролі захищені bcrypt. Дані особливої категорії, а саме вільний текст щоденника емоцій, назви препаратів і повідомлення AI-чату, додатково шифруються на рівні поля алгоритмом AES-256-GCM ключем, що зберігається окремо від бази; без цього ключа сервер у продакшені просто не стартує. Структуровані сигнали щоденника (лейбли емоцій, зони тіла, тригери, шкали) зберігаються без шифрування на рівні поля, бо потрібні для обчислення твоїх власних трендів; шифрування диска на сервері зараз не застосовується, тому найчутливіший елемент — вільний текст — захищено саме на рівні поля. OAuth-токени синхронізації календаря зашифровані, токен підписки на календар зберігається і в хешованому, і в зашифрованому вигляді. Резервні копії шифруються AES-256 перед записом на диск, і скрипт відмовляється робити копію без ключа. Звіти про збої проходять через фільтр, що прибирає зміст твоїх записів, токени доступу, email та IP-адресу — лишається тільки ідентифікатор акаунта. У мобільному застосунку щоденник можна додатково замкнути PIN-кодом, який зберігається у сховищі ОС.
15. Діти
Kairoscope призначений для осіб від 16 років. У державах-членах ЄС, які встановили нижчий вік цифрової згоди (від 13 років), користуватись сервісом можна з цього віку. При реєстрації ми просимо підтвердити відповідність віковому порогу; єдиний виняток — акаунт, що створюється першим входом через Google або Apple з екрана входу (Умови, §1). Ми свідомо не збираємо дані осіб, молодших за відповідний поріг. AI-функції над щоденником емоцій додатково вимагають окремого підтвердження, що тобі виповнилось 16; це підтвердження можна зняти в будь-який момент у Налаштуваннях, і разом із ним вимикається «ШІ для настрою». Якщо ти батько або мати й вважаєш, що дитина створила акаунт, напиши на kairoscope.contact@gmail.com: ми видалимо акаунт і всі дані протягом 30 днів.
16. Дані Google та обмежене використання (Limited Use)
Коли ти підключаєш синхронізацію Google Calendar, Kairoscope запитує доступ до твого календаря лише для читання (Google Calendar scope «calendar.readonly»). Ми використовуємо цей доступ винятково щоб читати наявні події твого календаря й показувати їх поряд із подіями Kairoscope — аби ти бачив весь свій день і уникав накладок. Ми ніколи не створюємо, не редагуємо й не видаляємо нічого у твоєму Google-календарі.
Використання та передання Kairoscope інформації, отриманої з Google API, будь-якому іншому застосунку відповідає Google API Services User Data Policy, зокрема вимогам Limited Use. А саме, дані Google Calendar:
- використовуються лише щоб надавати й покращувати описані вище функції календаря;
- не продаються й не передаються третім сторонам, окрім як для надання цих функцій, для дотримання застосовного закону або в межах злиття чи поглинання;
- не використовуються для реклами;
- не читаються людьми, окрім випадків: твоя явна згода, потреба безпеки чи дотримання закону, або якщо дані знеособлені й агреговані для внутрішніх операцій.
Зашифрований OAuth-токен зберігається лише поки синхронізацію підключено; відключення синхронізації в Профілі видаляє його й відкликає доступ. Відкликати доступ також можна будь-коли на myaccount.google.com/permissions.
17. Зміни політики
Про суттєві зміни повідомляємо в застосунку.
Цю політику опубліковано українською, англійською, іспанською та французькою. Автентичною є українська версія; решта — переклади, надані для зручності, і в разі розбіжності переважає український текст. Це не обмежує жодного з прав, описаних у §12: скористатися ними можна будь-якою з цих мов.
18. Контакт
Kairoscope Privacy Policy
Last updated: 21 August 2026.
1. Data controller
Data is processed by Yevhen Orestov (an individual, operating Kairoscope), Ukraine. Contact for data questions: kairoscope.contact@gmail.com.
2. What we store
| Category | What |
|---|---|
| Account | Email, hashed password, display name, timezone, language, theme, clock format, phone (optional), avatar (if you upload one) |
| Calendar | Events, tasks, categories, day templates, notes, time goals, attachments (if you add any) |
| Social | Friends, groups, event/task sharing, messages in shared sessions |
| Push | Push subscription (browser, FCM, APNs via Expo), log of reminders already sent |
| Emotion diary (health data, Art. 9) |
State entries: two wellbeing scales, emotion labels, body map (marked body areas), triggers, free-text note (encrypted), time, optional link to an event; "moments" (timestamp only); morning and evening mood and fatigue check-ins |
| Medication (health data, Art. 9) |
Medication names and labels (encrypted), dosing schedule, the status of each dose (taken or missed) and its time |
| Wellbeing (health data, Art. 9) |
Hourly energy markers, energy-budget settings — including your own lists of what drains and what restores you |
| AI chat | Assistant conversation history (contents encrypted), AI usage counters |
| Voice (transient) | Audio for speech recognition — sent to Groq (whisper-large-v3-turbo), with OpenAI Whisper as fallback; not stored after transcription |
| Sync | External calendar OAuth token (encrypted) and imported events — only if you connected Google/Microsoft yourself |
| Location (premium) | Precise GPS coordinates and addresses (home, events, saved places) — processed by Google Maps Platform for geo-reminders, address autocomplete and travel time; only when you use those features |
| Calendar link (ICS) | A unique subscription token, if you enable the feature — stored hashed and encrypted (see §10) |
| Subscription | Your account identifier in the purchase system, subscription status, promo codes you redeemed |
| Analytics (mobile app) | Anonymous app-instance identifier, device model, OS version, language, approximate country from IP, "sign up" and "login" events (see §13) |
| Technical data | IP address (rate limiting and abuse protection), crash reports (app version, device, screen sequence, account identifier) |
| Feedback | Email, name and message text, if you write to us through the form |
| Booking guest | The name and email of a person who booked a slot through a user's public booking link. Stored in dedicated fields on the event itself; the name is also part of the event's title. That person has no Kairoscope account — see the separate paragraph in §3 |
3. Why we process it, and on what legal basis
| Purpose | Data categories | Legal basis |
|---|---|---|
| Creating and running your account, sign-in, password reset | Account | Art. 6(1)(b), performance of a contract |
| Showing your calendar: events, tasks, categories, templates, attachments | Calendar | Art. 6(1)(b) |
| Reminders (push, email) | Push, event times | Art. 6(1)(b) |
| Sharing with friends and groups | Social | Art. 6(1)(b) |
| External calendar sync (read-only) | Sync | Art. 6(1)(a), consent — you connect it yourself and can disconnect it |
| Emotion diary, body map, triggers, notes, check-ins | Health data | Art. 9(2)(a), explicit consent, together with Art. 6(1)(a) — see §4 |
| Medication reminders and dose history | Health data | Art. 9(2)(a), explicit consent, together with Art. 6(1)(a) — see §4 |
| Energy budget and hourly energy markers | Health data | Art. 9(2)(a), explicit consent, together with Art. 6(1)(a) — see §4 |
| AI features over text: chat, categorisation, suggestions, day planning, the day's fatigue hint, the recovery suggestion | Event and task titles, times, free slots; for the day's fatigue hint, the recovery suggestion and day planning also your lists of what drains and what restores you | Art. 6(1)(a), consent — the "AI features" switch in Settings. For the drains/restores lists this is at the same time a special category (Art. 9(2)(a)) — see the caveat in §4 |
| AI over the diary: voice to labels, weekly review | Audio, diary aggregates | Art. 9(2)(a), separate explicit consent — the "mood AI" switch |
| Geo reminders, leave-on-time, address suggestions | Location | Art. 6(1)(a), consent |
| Subscription and payments | Subscription | Art. 6(1)(b), performance of a contract |
| Abuse protection, rate limiting, crash reports | Technical data | Art. 6(1)(f), legitimate interest in the security and availability of the service |
| Answering messages sent through the feedback form | Feedback | Art. 6(1)(f), legitimate interest in handling your enquiry |
| Measuring app advertising performance | Analytics | Consent (Art. 6(1)(a)); without consent analytics does not run, switch in Settings. Applies from app version 1.0.2 onwards — see §13 |
| Booking a slot through a public link | Booking guest | Art. 6(1)(f), the legitimate interest of both parties in holding the agreed meeting |
If you book a slot through someone else's link. When someone shares a Kairoscope booking link and you pick a slot, we store the name and email you provide so that the calendar owner knows who the meeting is with. The legal basis is the legitimate interest of both parties in holding the agreed meeting (Art. 6(1)(f)). Your name becomes part of the event's title in the owner's calendar, so anyone the owner shows that calendar to, or shares the event with, can read it; your email is visible to the owner alone. Your email stays on our server in Germany and goes nowhere else. Your name is a different matter, which is why it is called out separately here: it is part of the event's title, and an event's title leaves our server through the owner's ordinary use of the app — into the text of a push reminder if the owner sets one on that event (Expo, Apple, Google, USA), to OpenAI (USA) if they use an AI feature for that day, to their external calendar provider if they subscribed their feed there, and into a push to a friend they share the event with. Those recipients, their countries and the transfer mechanisms are listed in §7 and §8. This data is kept for as long as the event itself exists. You can ask us to delete it — write to kairoscope.contact@gmail.com: we remove the name from the event's title and erase the name and the email, while the event itself stays in the owner's calendar. You have the same rights as those described in §12, even though you have no account here.
4. Health data
Special category of data (Article 9 GDPR). The emotion diary, body map, triggers, state notes, mood and fatigue check-ins, hourly energy markers, and your medication schedule and dose history are health data. We process them on the basis of your explicit consent (Art. 9(2)(a) together with Art. 6(1)(a)) and only to show you your own entries, reminders and trends.
Today that consent is expressed by you turning these features on and writing the entries yourself. A dedicated confirmation that records the date and the version of this text is being added — this page will be updated with it.
Neither feature does anything until you start it yourself: a diary entry exists only when you create it, and medication reminders exist only when you add a schedule.
This data is never used for advertising and never shown to friends. Diary entries and medication data are not sent to AI providers without the separate "mood AI" consent (§5). One exception we name plainly: as soon as you turn on the general "AI features" switch, your lists of what drains and what restores you go to OpenAI along with the day's schedule — in the day's fatigue hint and in day planning; the recovery suggestion sends the restores list. You do not have to open the fatigue hint for this: using any of those features is enough. That happens under the general AI consent, not under "mood AI". The hourly energy markers themselves, and the mood and fatigue check-ins, are not sent there. The free-text diary note, the medication name and AI chat messages are encrypted at field level; the remaining diary signals (emotion labels, body areas, triggers, scales) are stored without field-level encryption, because they are what your own trends are computed from.
Medication reminders and what the notification says. A medication name can reveal a diagnosis, which is why it is encrypted at field level in our database — and, for the same reason, why by default it is not part of the notification text. The push says only "Time to take your medication"; the app fetches the actual name from our own API and renders it on the device. The reason is plain: a notification reaches you through intermediaries — Expo (650 Industries, USA), then Apple APNs or Google FCM — and they read the notification text. In Settings → "Medication" there is a switch, "Show the medication name in notifications", off by default; if you turn it on, the name goes to those services and onto your phone's lock screen. What the switch cannot hide in either state: the fact that you receive medication reminders, and when — the notification is tagged as a medication one so that the "Taken" button works and so that Android does not mute it along with ordinary reminders. Hiding that too would mean giving up server-side medication reminders altogether. Web push is encrypted end-to-end (VAPID), so there not even the delivery service reads the text; the switch still governs it, because "show the name in notifications" is one promise, not two.
You can export the diary as a separate JSON file or erase it entirely without deleting your account: Settings → "Emotion diary", in the mobile app and in the web version alike. It is also part of the full account export (§12) and is erased together with the account. Medication schedules are deleted one by one in the "Medication" section, together with that schedule's dose history; a copy of your medication data comes from the account export. For the mood and fatigue check-ins and the hourly energy markers there is no standalone erase control at all — §11 spells this out.
5. AI processing
AI features (voice transcription, chat, categorization, suggestions) only activate after you opt in in your profile, and send AI providers the minimum context needed — event titles, times, free slots, and, for the day's fatigue hint, the recovery suggestion and day planning, your drains/restores lists (§4). Text features (chat, categorization, suggestions) are processed by OpenAI; speech recognition (voice→text) is processed by Groq (whisper-large-v3-turbo), with OpenAI Whisper as fallback. Emotion diary entries go to AI only under the separate "mood AI" consent plus a 16+ confirmation; for the weekly review the server computes aggregates and does not send the notes themselves. Facts are computed deterministically on our server; the AI never acts without your confirmation.
Automated decisions (Article 22 GDPR). Kairoscope makes no decisions about you based solely on automated processing, and carries out no profiling with legal or similarly significant effects. The AI only proposes: create an event, suggest an emotion label, find a free slot. Every proposal is applied only after you confirm it in the interface, and the server discards proposals that refer to events or contacts that do not exist. Facts (overlaps, free slots, statistics) are computed deterministically on our server, not by a language model. The crisis support card is triggered by deterministic phrase matching on your device; it is never sent anywhere, never notifies anyone, and never blocks an entry from being saved.
6. Where data lives
PostgreSQL, attachment files and backups live on a Hetzner Online GmbH server in Germany (EU). Backups are encrypted.
7. International transfers
Primary storage is in the EU, but some processing takes place at providers based in the United States: OpenAI, Groq Inc., RevenueCat Inc., Expo (650 Industries, Inc.), Google LLC (Firebase, FCM, Maps, SMTP), Apple Inc. (APNs), Microsoft Corp. (calendar sync). What exactly each of them receives is listed in §8. Emotion diary data is transferred to the United States only if you have separately enabled "mood AI"; otherwise it does not leave the EU.
The operator of Kairoscope is based in Ukraine — a country for which the European Commission has not adopted an adequacy decision — so the operator's own access to the data is also a transfer outside the EEA.
The Article 46 mechanisms for such transfers are the European Commission's Standard Contractual Clauses, as part of the data processing agreements with the providers, and, where it applies, the recipient's certification under the EU-US Data Privacy Framework. We are currently completing those agreements with each provider; you can ask for the current status and a copy of the safeguards in force at kairoscope.contact@gmail.com. This page will be updated as soon as that is done.
8. Who we share data with
| Recipient | What we send | Why | Country |
|---|---|---|---|
| Hetzner Online GmbH | All service data (hosting) | Hosting the database, files and backups | Germany |
| OpenAI | Event and task titles, times, free slots, chat messages, your drains/restores lists (for the day's fatigue hint, the recovery suggestion and day planning); audio as fallback | Text AI features, fallback speech recognition | USA |
| Groq Inc. | Voice input audio | Speech recognition, primary provider | USA |
| Google / Microsoft | OAuth token, reading your calendar | Sync, only if you connected it | USA |
| Google Maps Platform | Coordinates and addresses | Geo reminders, travel time, address suggestions | USA |
| Google FCM, Apple APNs, Expo (650 Industries) | Push token and the notification text, including event titles. Not the medication name: by default a medication reminder says only that a dose is due, and the app renders the name itself (see §4). If you switch on "Show the medication name in notifications" yourself, the name goes here too | Delivering reminders to your device | USA |
| Google (Gmail SMTP) | Email addresses and message contents | Verification, password reset, email reminders | USA |
| RevenueCat Inc. | Your Kairoscope account identifier, purchase identifier, subscription status | Verifying subscription status | USA |
| Firebase Analytics (Google) | Anonymous app-instance identifier, device model, OS and app version, language, approximate location from IP; sign-up and sign-in events plus Firebase's standard automatic set (app opens, session starts, engagement time, app and OS updates) | Measuring app advertising performance (§13) | USA |
| Apple, Google | Transaction data | Payment processing in the app stores | USA |
| GlitchTip | App version, device, screen sequence, account identifier | Crash reports; this is our own server, not a third party | EU |
In addition, if you turn on the weather for the day, your device itself calls the Open-Meteo forecast service with coordinates rounded to about a kilometre. Those coordinates do not pass through our server and we do not store them.
The Google and Apple sign-in buttons in the web version work the same way — around our server. When you open the login or sign-up page, your browser loads the button scripts from accounts.google.com (Google Identity Services) and appleid.cdn-apple.com (Sign in with Apple). This happens as the page opens, before you press anything, so your IP address and the address of that page become known to Google and Apple even if you end up signing in with a password or simply close the tab. Those requests go from your device; we neither see nor store anything from them, and what the provider does with them is decided by the provider, not by us. The mobile app does not do this: its sign-in screen loads nothing, and signing in with Google or Apple starts only when you tap the corresponding button.
We do not sell data. We announce a new recipient in the app.
9. Location
Kairoscope accesses your device's precise location only when you turn on a feature that needs it (geo-reminders, "leave on time", address suggestions). We collect GPS coordinates and the addresses (home/events) you enter, and use them to trigger geo-reminders (when you arrive at or leave a place), compute travel time and departure nudges, and autocomplete addresses. For geo-reminders the app accesses location in the background — only to match it against places you set up yourself; that matching happens on your device, and those background coordinates are not sent anywhere. The coordinates and addresses you save, and your current position when an event shows the "leave on time" estimate, are sent to Google Maps Platform to compute routes, travel time and address suggestions. If the day's weather is enabled, coordinates rounded to about a kilometre go from your device to the Open-Meteo forecast service. You can remove the geo condition from a reminder, delete saved places, and revoke the location permission in your system settings at any time. Location is never used for advertising or sold.
10. Calendar link (ICS)
If you enable calendar subscription, we create a unique link that serves your calendar without a password: anyone who obtains the link sees all of your events — and not only the title and time, but also each event's note text and location, for your whole history, not just today. The note is the same free text that §14 calls the most sensitive thing you write, so treat this link as a key to the entire calendar, not as a list of titles. We store the token itself hashed and encrypted, so it cannot be read out of the database. Do not publish the link. There is no revoke button yet: if the link ended up somewhere it should not have, write to kairoscope.contact@gmail.com and we will replace it.
11. Retention
| Category | Retention |
|---|---|
| Account, calendar, tasks, categories, templates, attachments, and everything else you create in the app: saved places, booking links, time goals, if-then follow-ups, hidden imported events | For as long as the account exists. Deleting the account in your Profile erases them immediately, together with the attachment files |
| The name and email of a guest who booked a slot through your link | For as long as the event itself exists in the owner's calendar. They go with the event, with the deletion of the owner's account, or earlier at the guest's own request (see the booking paragraph in §3) |
| Emotion diary: state entries and "moments" | For as long as the account exists, or until you erase them yourself — a single entry from its card, the whole diary with the button in Settings → "Emotion diary" (app or web). We set no automatic expiry: this is your personal archive, and how old it gets is your decision |
| Medication: schedules and dose history | For as long as the account exists, or until you delete the schedule yourself in the "Medication" section — deleting a schedule takes its dose history with it |
| Mood and fatigue check-ins, hourly energy markers | For as long as the account exists. There is currently no button in the app that erases these records: a day's check-in can be overwritten with a new value, erasing the diary does not touch them, and they go when the account goes. To have them removed sooner, ask us by email (§12). We set no automatic expiry |
| Voice input audio | Not stored: sent to the transcription provider and discarded as soon as the text comes back |
| Assistant chat history | For as long as the account exists. We set no automatic expiry: it is your conversation, and the app shows it back to you |
| Live-session event chat | 90 days |
| Unsaved event draft | 30 days after the last change. This is what you started typing into the form and did not save; a saved event is the row above |
| Calendar sync OAuth tokens | For as long as sync is connected; disconnecting it in your Profile deletes them |
| Session refresh tokens | Until expiry; expired ones are deleted by a daily job |
| Email-verification and password-reset tokens | Until expiry (a link lives for hours); expired ones are deleted by a daily job, used ones the moment they are used |
| Device push tokens | While the device is active. A token whose app has not opened in over 180 days is deleted; the next launch registers it again |
| AI usage counters (free-tier quotas) | 24 months |
| Sent-reminder log | 2 days |
| Snoozed ("10 more minutes") reminders | 1 day |
| In-app notifications | Read ones are deleted after 30 days; unread ones stay for as long as the account exists |
| Encrypted backups | 7 days (attachment archives 3 days), then deleted. Deleted data can survive in a backup copy for the same period |
| Server technical logs | Kept no longer than needed for diagnostics and abuse protection |
| Crash reports | Kept while needed to fix the bug in question |
| Messages sent through the feedback form | 24 months, or sooner at your request. If you sent it from your account's address and that address is verified, deleting the account erases the message too, along with the name and the address. Messages sent from a different address cannot be attributed to the account and are not erased with it: the form works without an account. The same holds for an address we cannot tie to exactly one account (for instance, when two accounts differ in it only by letter case): we have no basis for attributing such a message to either of them, and it goes at the general period above. The email code for that form lives 10 minutes, a used one disappears at once, and unused ones are removed by a daily job |
| Subscription records | For as long as the account exists. The transaction data itself is kept by Apple, Google and RevenueCat under their own retention |
| Consent records: what you agreed to, when, and which revision of the text | For as long as the account exists. This is the evidence that consent existed (Art. 7(1)), so it lives as long as the account and goes with it. Withdrawing does not erase the record; it adds a withdrawal row |
12. Your rights
Your rights. You have the right to: access your data and receive a copy in a machine-readable JSON format (Art. 15, 20); rectify inaccurate data (Art. 16); erase it, the "right to be forgotten" (Art. 17); restrict processing (Art. 18); object to processing we carry out on the basis of legitimate interest (Art. 21); withdraw any consent.
How to exercise them. Exporting all your data as JSON and deleting your account are in your Profile, in both the web version and the mobile app, without contacting us. A separate export and erasure of the emotion diary is in Settings → "Emotion diary", in both versions. The health-data consent (and its withdrawal), the AI features switch, the separate "mood AI" consent and the 16+ confirmation are also in both versions, under Settings. Everything else, including changing your email, restriction of processing and objection, by email to kairoscope.contact@gmail.com. We respond within one month of the request; in complex cases the period may be extended by a further two months, and we will tell you within the first month (Art. 12(3)). We may ask you to confirm your identity by writing from the account's own address if we have reasonable doubts.
Withdrawing consent takes effect for the future and does not make processing that took place before withdrawal unlawful (Art. 7(3)). Data already sent to OpenAI or Groq to fulfil your request cannot be recalled from their systems by us.
Complaints. If you believe we are processing your data unlawfully, you have the right to lodge a complaint with a data protection supervisory authority in the country of your residence, your place of work, or the place of the alleged infringement. The list of EU member-state authorities: edpb.europa.eu/about-edpb/about-edpb/members_en. In Ukraine the supervisory authority is the Ukrainian Parliament Commissioner for Human Rights: ombudsman.gov.ua. You do not have to contact us first, though we usually resolve matters faster.
13. Cookies, local storage and analytics
Cookies and local storage. On the web: an HttpOnly cookie for the authentication refresh token, localStorage for theme, language and session cache; two keys holding personal data (rounded coordinates for the weather, and your own recovery notes) are wiped when you sign out. In the mobile app the refresh token lives in the OS secure store (Keychain / Android Keystore), and the offline change queue and recovery notes live in a separate encrypted local store whose key is held by the same OS store; signing out wipes them along with any downloaded attachments. Appearance settings (theme, language) stay — they are not personal data. We use no advertising cookies and no pixel trackers on the web.
Analytics. With your consent we use Firebase Analytics (Google Ireland Ltd. and Google LLC) to measure the performance of our app advertising. The app itself sends two events, sign-up and sign-in. On top of those, Firebase collects its own standard usage events: app opens, session starts, engagement time, app and OS updates. They carry an anonymous app-instance identifier, your device model, OS and app version, language, and an approximate location derived from your IP address. Those automatic events cannot be switched off one by one — consent covers the whole set. We have turned off automatic screen-view reporting, no content from your calendar, tasks or diary is sent, and we do not collect the device advertising identifier. Without consent, analytics does not run at all. Consent is given separately on each device and does not carry over between them; you can change your mind at any time in Settings. This applies to app version 1.0.2 and later. The switch lives in the app's own code, so on earlier versions still installed on a device analytics keeps collecting without it; updating the app turns the gate on. The web version has no third-party analytics at all, but the login page does load the Google and Apple sign-in button scripts (§8), and that alone reveals your IP address to them.
14. Security
Transport: HTTPS (TLS 1.2 and 1.3, HSTS). Authentication: JWT together with a refresh token in an HttpOnly cookie, passwords protected with bcrypt. Special-category data, namely the free-text emotion diary note, medication names and AI chat messages, is additionally encrypted at field level with AES-256-GCM using a key held separately from the database; without that key the server refuses to start in production. Structured diary signals (emotion labels, body areas, triggers, scales) are stored without field-level encryption because they are needed to compute your own trends; the server has no disk-level encryption at present, which is why the most sensitive element — the free text — is protected at field level instead. Calendar sync OAuth tokens are encrypted, and the calendar subscription token is stored both hashed and encrypted. Backups are encrypted with AES-256 before being written to disk, and the script refuses to make a backup without a key. Crash reports pass through a filter that strips the content of your entries, access tokens, your email and your IP address — only the account identifier remains. In the mobile app the diary can additionally be locked with a PIN held in the OS secure store.
15. Children
Kairoscope is intended for people aged 16 and over. In EU member states that have set a lower digital consent age (from 13), the service may be used from that age. At registration we ask you to confirm that you meet the age threshold; the one exception is an account created by a first sign-in with Google or Apple from the sign-in screen (Terms, §1). We do not knowingly collect data from anyone below the applicable threshold. AI features over the emotion diary additionally require a separate confirmation that you are 16 or older; that confirmation can be withdrawn at any time in Settings, and withdrawing it switches "mood AI" off with it. If you are a parent and believe your child has created an account, write to kairoscope.contact@gmail.com and we will delete the account and all data within 30 days.
16. Google user data & Limited Use
When you connect Google Calendar sync, Kairoscope requests read-only access to your Google Calendar (the Google Calendar "calendar.readonly" scope). We use this access solely to read your existing calendar events and show them alongside your Kairoscope events, so you can see your whole day and avoid scheduling conflicts. We never create, edit, or delete anything in your Google Calendar.
Kairoscope's use and transfer of information received from Google APIs to any other app adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically, Google Calendar data:
- is used only to provide and improve the calendar features described above;
- is not sold, and is not transferred to third parties except to provide those features, to comply with applicable law, or as part of a merger or acquisition;
- is not used for advertising;
- is not read by humans unless you give explicit consent, it is necessary for security or to comply with the law, or the data is aggregated and anonymized for internal operations.
The encrypted OAuth token is stored only while sync is connected; disconnecting sync in your Profile deletes it and revokes access. You can also revoke access anytime at myaccount.google.com/permissions.
17. Changes to this policy
Material changes are announced in the app.
This policy is published in Ukrainian, English, Spanish and French. The Ukrainian version is the authoritative one; the others are translations provided for convenience, and in case of any discrepancy the Ukrainian text prevails. This does not limit any of the rights described in §12, which you can exercise in any of these languages.
18. Contact
Política de Privacidad de Kairoscope
Última actualización: 21 de agosto de 2026.
1. Responsable del tratamiento
Los datos los trata Yevhen Orestov (persona física, que explota Kairoscope), Ucrania. Contacto para cuestiones de datos: kairoscope.contact@gmail.com.
2. Qué guardamos
| Categoría | Qué |
|---|---|
| Cuenta | Correo, contraseña cifrada con hash, nombre visible, zona horaria, idioma, tema, formato de hora, teléfono (opcional), foto de perfil (si subes una) |
| Calendario | Eventos, tareas, categorías, plantillas de día, notas, metas de tiempo, archivos adjuntos (si añades alguno) |
| Social | Amigos, grupos, compartir eventos y tareas, mensajes en sesiones compartidas |
| Notificaciones | Suscripción push (navegador, FCM, APNs a través de Expo), registro de los recordatorios ya enviados |
| Diario de emociones (datos de salud, art. 9) |
Registros de estado: dos escalas de bienestar, etiquetas de emoción, mapa corporal (zonas del cuerpo marcadas), desencadenantes, nota de texto libre (cifrada), hora, vínculo opcional con un evento; «momentos» (solo la marca de tiempo); registros de ánimo y cansancio de la mañana y de la tarde |
| Medicación (datos de salud, art. 9) |
Nombres y etiquetas de los medicamentos (cifrados), pauta de dosis, el estado de cada toma (tomada o saltada) y su hora |
| Bienestar (datos de salud, art. 9) |
Marcas de energía por hora, ajustes del presupuesto de energía, incluidas tus propias listas de lo que te desgasta y lo que te repone |
| Chat de IA | Historial de la conversación con el asistente (el contenido, cifrado), contadores de uso de IA |
| Voz (transitoria) | Audio para el reconocimiento del habla, enviado a Groq (whisper-large-v3-turbo), con OpenAI Whisper como alternativa; no se guarda tras la transcripción |
| Sincronización | Token OAuth del calendario externo (cifrado) y eventos importados, solo si conectaste Google/Microsoft por tu cuenta |
| Ubicación (premium) | Coordenadas GPS precisas y direcciones (casa, eventos, sitios guardados), tratadas por Google Maps Platform para los recordatorios por lugar, el autocompletado de direcciones y el tiempo de trayecto; solo cuando usas esas funciones |
| Enlace de calendario (ICS) | Un token de suscripción único, si activas la función; se guarda con hash y cifrado (véase el §10) |
| Suscripción | Tu identificador de cuenta en el sistema de compras, el estado de la suscripción, los códigos promocionales que canjeaste |
| Analítica (app móvil) | Identificador anónimo de instalación de la app, modelo del dispositivo, versión del sistema, idioma, país aproximado según la IP, eventos de «registro» y «inicio de sesión» (véase el §13) |
| Datos técnicos | Dirección IP (limitación de frecuencia de peticiones y protección frente a abusos), informes de fallos (versión de la app, dispositivo, secuencia de pantallas, identificador de cuenta) |
| Comentarios | Correo, nombre y texto del mensaje, si nos escribes desde el formulario |
| Invitado de una reserva | El nombre y el correo de quien reservó un hueco a través del enlace público de reserva de una persona usuaria. Se guardan en campos propios del evento; el nombre forma además parte del título del evento. Esa persona no tiene cuenta en Kairoscope; véase el párrafo aparte del §3 |
3. Para qué los tratamos y con qué base jurídica
| Finalidad | Categorías de datos | Base jurídica |
|---|---|---|
| Crear y mantener tu cuenta, el inicio de sesión y el restablecimiento de la contraseña | Cuenta | Art. 6(1)(b), ejecución de un contrato |
| Mostrar tu calendario: eventos, tareas, categorías, plantillas, adjuntos | Calendario | Art. 6(1)(b) |
| Recordatorios (push, correo) | Notificaciones, horas de los eventos | Art. 6(1)(b) |
| Compartir con amigos y grupos | Social | Art. 6(1)(b) |
| Sincronización con calendarios externos (solo lectura) | Sincronización | Art. 6(1)(a), consentimiento: lo conectas tú y puedes desconectarlo |
| Diario de emociones, mapa corporal, desencadenantes, notas, registros | Datos de salud | Art. 9(2)(a), consentimiento explícito, junto con el art. 6(1)(a); véase el §4 |
| Recordatorios de medicación e historial de dosis | Datos de salud | Art. 9(2)(a), consentimiento explícito, junto con el art. 6(1)(a); véase el §4 |
| Presupuesto de energía y marcas de energía por hora | Datos de salud | Art. 9(2)(a), consentimiento explícito, junto con el art. 6(1)(a); véase el §4 |
| Funciones de IA sobre texto: chat, categorización, sugerencias, planificación del día, el consejo sobre la fatiga del día, la propuesta de recuperación | Títulos de eventos y tareas, horas, huecos libres; para el consejo sobre la fatiga, la propuesta de recuperación y la planificación del día, también tus listas de lo que te desgasta y lo que te repone | Art. 6(1)(a), consentimiento: el interruptor «Funciones de IA» en Ajustes. Para las listas de desgaste y reposición esto es, al mismo tiempo, una categoría especial (art. 9(2)(a)); véase la advertencia del §4 |
| IA sobre el diario: voz a etiquetas, balance semanal | Audio, agregados del diario | Art. 9(2)(a), consentimiento explícito aparte: el interruptor «IA de ánimo» |
| Recordatorios por lugar, salir a tiempo, sugerencias de direcciones | Ubicación | Art. 6(1)(a), consentimiento |
| Suscripción y pagos | Suscripción | Art. 6(1)(b), ejecución de un contrato |
| Protección frente a abusos, limitación de peticiones, informes de fallos | Datos técnicos | Art. 6(1)(f), interés legítimo en la seguridad y la disponibilidad del servicio |
| Responder a los mensajes enviados por el formulario de comentarios | Comentarios | Art. 6(1)(f), interés legítimo en atender tu consulta |
| Medir la eficacia de la publicidad de la app | Analítica | Consentimiento (art. 6(1)(a)); sin consentimiento la analítica no se ejecuta, interruptor en Ajustes. Rige a partir de la versión 1.0.2 de la app; véase el §13 |
| Reservar un hueco mediante un enlace público | Invitado de una reserva | Art. 6(1)(f), interés legítimo de ambas partes en celebrar la reunión acordada |
Si reservas un hueco por el enlace de otra persona. Cuando alguien comparte un enlace de reserva de Kairoscope y tú eliges un hueco, guardamos el nombre y el correo que facilitas para que quien es dueño del calendario sepa con quién es la reunión. La base jurídica es el interés legítimo de ambas partes en celebrar la reunión acordada (art. 6(1)(f)). Tu nombre pasa a formar parte del título del evento en el calendario de esa persona, así que cualquiera a quien se lo muestre, o con quien comparta el evento, podrá leerlo; tu correo solo lo ve esa persona. Tu correo se queda en nuestro servidor de Alemania y no va a ninguna otra parte. Tu nombre es otra cosa, y por eso se señala aquí por separado: forma parte del título del evento, y el título de un evento sale de nuestro servidor con el uso ordinario que esa persona hace de la app: al texto de un recordatorio push si lo pone en ese evento (Expo, Apple, Google, EE. UU.), a OpenAI (EE. UU.) si usa alguna función de IA para ese día, a su proveedor de calendario externo si suscribió allí su feed, y dentro de una notificación a un amigo con quien comparta el evento. Esos destinatarios, sus países y los mecanismos de transferencia están en los §7 y §8. Estos datos se conservan mientras exista el evento. Puedes pedirnos que los borremos escribiendo a kairoscope.contact@gmail.com: quitamos el nombre del título del evento y borramos el nombre y el correo, mientras que el evento se queda en el calendario de esa persona. Tienes los mismos derechos descritos en el §12, aunque no tengas cuenta aquí.
4. Datos de salud
Categoría especial de datos (artículo 9 del RGPD). El diario de emociones, el mapa corporal, los desencadenantes, las notas de estado, los registros de ánimo y cansancio, las marcas de energía por hora y tu pauta de medicación con su historial de dosis son datos de salud. Los tratamos sobre la base de tu consentimiento explícito (art. 9(2)(a) junto con el art. 6(1)(a)) y solo para mostrarte tus propios registros, recordatorios y tendencias.
Hoy ese consentimiento se expresa al activar tú mismo estas funciones y escribir los registros. Estamos añadiendo una confirmación específica que deja constancia de la fecha y de la versión de este texto; esta página se actualizará con ella.
Ninguna de las dos funciones hace nada hasta que la pones en marcha: una entrada del diario existe solo si tú la creas, y los recordatorios de medicación existen solo si añades una pauta.
Estos datos no se usan nunca para publicidad ni se muestran nunca a tus amigos. Las entradas del diario y los datos de medicación no se envían a proveedores de IA sin el consentimiento aparte de «IA de ánimo» (§5). Una excepción que nombramos con claridad: en cuanto activas el interruptor general de «Funciones de IA», tus listas de lo que te desgasta y lo que te repone van a OpenAI junto con la agenda del día, en el consejo sobre la fatiga y en la planificación del día; la propuesta de recuperación envía la lista de lo que te repone. No hace falta que abras el consejo sobre la fatiga: basta con usar cualquiera de esas funciones. Eso ocurre bajo el consentimiento general de IA, no bajo «IA de ánimo». Las propias marcas de energía por hora, y los registros de ánimo y cansancio, no se envían allí. La nota de texto libre del diario, el nombre del medicamento y los mensajes del chat de IA están cifrados a nivel de campo; el resto de las señales del diario (etiquetas de emoción, zonas del cuerpo, desencadenantes, escalas) se guardan sin cifrado a nivel de campo, porque de ellas se calculan tus propias tendencias.
Los recordatorios de medicación y lo que dice la notificación. El nombre de un medicamento puede revelar un diagnóstico; por eso está cifrado a nivel de campo en nuestra base de datos y, por la misma razón, por defecto no forma parte del texto de la notificación. La notificación dice solo «Es hora de tomar tu medicación»; la app recupera el nombre real de nuestra propia API y lo muestra en el dispositivo. El motivo es sencillo: una notificación te llega a través de intermediarios —Expo (650 Industries, EE. UU.) y luego Apple APNs o Google FCM— y ellos leen el texto de la notificación. En Ajustes → «Medicación» hay un interruptor, «Mostrar el nombre del medicamento en las notificaciones», apagado por defecto; si lo enciendes, el nombre va a esos servicios y a la pantalla de bloqueo de tu teléfono. Lo que el interruptor no puede ocultar en ninguno de los dos estados: el hecho de que recibes recordatorios de medicación, y cuándo. La notificación va marcada como de medicación para que funcione el botón «Tomada» y para que Android no la silencie junto con los recordatorios ordinarios. Ocultar también eso significaría renunciar por completo a los recordatorios de medicación desde el servidor. Las notificaciones push web están cifradas de extremo a extremo (VAPID), así que ahí ni siquiera el servicio de entrega lee el texto; aun así el interruptor las gobierna, porque «mostrar el nombre en las notificaciones» es una promesa, no dos.
Puedes exportar el diario como un archivo JSON aparte o borrarlo entero sin eliminar tu cuenta: Ajustes → «Diario de emociones», tanto en la app móvil como en la versión web. También forma parte de la exportación completa de la cuenta (§12) y se borra junto con ella. Las pautas de medicación se eliminan una a una en la sección «Medicación», junto con el historial de dosis de esa pauta; una copia de tus datos de medicación sale de la exportación de la cuenta. Para los registros de ánimo y cansancio y para las marcas de energía por hora no hay ningún control de borrado independiente; el §11 lo explica en detalle.
5. Tratamiento por IA
Las funciones de IA (transcripción de voz, chat, categorización, sugerencias) solo se activan después de que las habilites en tu perfil, y envían a los proveedores de IA el contexto mínimo necesario: títulos de eventos, horas, huecos libres y, para el consejo sobre la fatiga del día, la propuesta de recuperación y la planificación del día, tus listas de desgaste y reposición (§4). Las funciones de texto (chat, categorización, sugerencias) las trata OpenAI; el reconocimiento del habla (voz a texto) lo trata Groq (whisper-large-v3-turbo), con OpenAI Whisper como alternativa. Las entradas del diario de emociones van a la IA únicamente con el consentimiento aparte de «IA de ánimo» más una confirmación de 16 años o más; para el balance semanal el servidor calcula agregados y no envía las notas en sí. Los hechos se calculan de forma determinista en nuestro servidor; la IA nunca actúa sin tu confirmación.
Decisiones automatizadas (artículo 22 del RGPD). Kairoscope no toma decisiones sobre ti basadas únicamente en un tratamiento automatizado, ni realiza elaboración de perfiles con efectos jurídicos o de similar importancia. La IA solo propone: crear un evento, sugerir una etiqueta de emoción, encontrar un hueco libre. Toda propuesta se aplica solo después de que la confirmes en la interfaz, y el servidor descarta las propuestas que se refieren a eventos o contactos que no existen. Los hechos (solapes, huecos libres, estadísticas) se calculan de forma determinista en nuestro servidor, no con un modelo de lenguaje. La tarjeta de apoyo en crisis se dispara por coincidencia determinista de frases en tu dispositivo; no se envía nunca a ninguna parte, no avisa nunca a nadie y no impide nunca que se guarde un registro.
6. Dónde residen los datos
PostgreSQL, los archivos adjuntos y las copias de seguridad residen en un servidor de Hetzner Online GmbH en Alemania (UE). Las copias de seguridad están cifradas.
7. Transferencias internacionales
El almacenamiento principal está en la UE, pero parte del tratamiento se realiza en proveedores establecidos en Estados Unidos: OpenAI, Groq Inc., RevenueCat Inc., Expo (650 Industries, Inc.), Google LLC (Firebase, FCM, Maps, SMTP), Apple Inc. (APNs), Microsoft Corp. (sincronización de calendarios). Qué recibe exactamente cada uno está en el §8. Los datos del diario de emociones se transfieren a Estados Unidos únicamente si has activado por separado la «IA de ánimo»; de lo contrario no salen de la UE.
Quien explota Kairoscope está establecido en Ucrania —un país para el que la Comisión Europea no ha adoptado una decisión de adecuación—, de modo que su propio acceso a los datos es también una transferencia fuera del EEE.
Los mecanismos del artículo 46 para esas transferencias son las Cláusulas Contractuales Tipo de la Comisión Europea, como parte de los contratos de encargo del tratamiento con los proveedores, y, cuando resulte aplicable, la certificación del destinatario en el marco del EU-US Data Privacy Framework. Estamos completando ahora esos contratos con cada proveedor; puedes pedir el estado actual y una copia de las garantías vigentes en kairoscope.contact@gmail.com. Esta página se actualizará en cuanto esté hecho.
8. Con quién compartimos los datos
| Destinatario | Qué enviamos | Para qué | País |
|---|---|---|---|
| Hetzner Online GmbH | Todos los datos del servicio (alojamiento) | Alojar la base de datos, los archivos y las copias de seguridad | Alemania |
| OpenAI | Títulos de eventos y tareas, horas, huecos libres, mensajes de chat, tus listas de desgaste y reposición (para el consejo sobre la fatiga del día, la propuesta de recuperación y la planificación del día); audio como alternativa | Funciones de IA sobre texto, reconocimiento del habla de reserva | EE. UU. |
| Groq Inc. | Audio de la entrada por voz | Reconocimiento del habla, proveedor principal | EE. UU. |
| Google / Microsoft | Token OAuth, lectura de tu calendario | Sincronización, solo si la conectaste | EE. UU. |
| Google Maps Platform | Coordenadas y direcciones | Recordatorios por lugar, tiempo de trayecto, sugerencias de direcciones | EE. UU. |
| Google FCM, Apple APNs, Expo (650 Industries) | Token push y el texto de la notificación, incluidos los títulos de los eventos. No el nombre del medicamento: por defecto, un recordatorio de medicación dice solo que toca una dosis, y la app muestra el nombre por su cuenta (véase el §4). Si activas tú «Mostrar el nombre del medicamento en las notificaciones», el nombre también va aquí | Entregar los recordatorios a tu dispositivo | EE. UU. |
| Google (Gmail SMTP) | Direcciones de correo y contenido de los mensajes | Verificación, restablecimiento de contraseña, recordatorios por correo | EE. UU. |
| RevenueCat Inc. | Tu identificador de cuenta de Kairoscope, el identificador de la compra, el estado de la suscripción | Verificar el estado de la suscripción | EE. UU. |
| Firebase Analytics (Google) | Identificador anónimo de instalación de la app, modelo del dispositivo, versión del sistema y de la app, idioma, ubicación aproximada según la IP; eventos de registro e inicio de sesión, más el conjunto automático estándar de Firebase (aperturas de la app, inicios de sesión de uso, tiempo de interacción, actualizaciones de la app y del sistema) | Medir la eficacia de la publicidad de la app (§13) | EE. UU. |
| Apple, Google | Datos de la transacción | Procesamiento de pagos en las tiendas de aplicaciones | EE. UU. |
| GlitchTip | Versión de la app, dispositivo, secuencia de pantallas, identificador de cuenta | Informes de fallos; es nuestro propio servidor, no un tercero | UE |
Además, si activas el tiempo del día, tu propio dispositivo llama al servicio de previsión Open-Meteo con unas coordenadas redondeadas a alrededor de un kilómetro. Esas coordenadas no pasan por nuestro servidor y no las guardamos.
Los botones de inicio de sesión de Google y Apple en la versión web funcionan igual: por fuera de nuestro servidor. Cuando abres la página de inicio de sesión o de registro, tu navegador carga los scripts de esos botones desde accounts.google.com (Google Identity Services) y appleid.cdn-apple.com (Sign in with Apple). Esto ocurre al abrirse la página, antes de que pulses nada, así que tu dirección IP y la dirección de esa página quedan a la vista de Google y de Apple aunque acabes entrando con contraseña o simplemente cierres la pestaña. Esas peticiones salen de tu dispositivo; nosotros ni las vemos ni guardamos nada de ellas, y lo que el proveedor haga con ellas lo decide el proveedor, no nosotros. La app móvil no hace esto: su pantalla de inicio de sesión no carga nada, y entrar con Google o con Apple empieza solo cuando tocas el botón correspondiente.
No vendemos datos. Anunciamos en la app cualquier destinatario nuevo.
9. Ubicación
Kairoscope accede a la ubicación precisa de tu dispositivo solo cuando activas una función que la necesita (recordatorios por lugar, «salir a tiempo», sugerencias de direcciones). Recogemos las coordenadas GPS y las direcciones (casa, eventos) que introduces, y las usamos para disparar los recordatorios por lugar (cuando llegas a un sitio o sales de él), calcular el tiempo de trayecto y los avisos de salida, y autocompletar direcciones. Para los recordatorios por lugar, la app accede a la ubicación en segundo plano, solo para compararla con los sitios que has configurado tú; esa comparación ocurre en tu dispositivo, y esas coordenadas de segundo plano no se envían a ninguna parte. Las coordenadas y direcciones que guardas, y tu posición actual cuando un evento muestra la estimación de «salir a tiempo», se envían a Google Maps Platform para calcular rutas, tiempos de trayecto y sugerencias de direcciones. Si el tiempo del día está activado, unas coordenadas redondeadas a alrededor de un kilómetro van desde tu dispositivo al servicio de previsión Open-Meteo. Puedes quitar la condición de lugar de un recordatorio, eliminar los sitios guardados y revocar el permiso de ubicación en los ajustes de tu sistema cuando quieras. La ubicación no se usa nunca para publicidad ni se vende.
10. Enlace de calendario (ICS)
Si activas la suscripción al calendario, creamos un enlace único que sirve tu calendario sin contraseña: cualquiera que consiga el enlace ve todos tus eventos, y no solo el título y la hora, sino también el texto de la nota y el lugar de cada evento, de todo tu historial, no solo de hoy. La nota es ese mismo texto libre que el §14 llama lo más sensible que escribes, así que trata este enlace como una llave de todo el calendario, no como una lista de títulos. El token en sí lo guardamos con hash y cifrado, de modo que no puede leerse desde la base de datos. No publiques el enlace. Todavía no hay un botón para revocarlo: si el enlace acabó donde no debía, escribe a kairoscope.contact@gmail.com y lo sustituiremos.
11. Conservación
| Categoría | Conservación |
|---|---|
| Cuenta, calendario, tareas, categorías, plantillas, adjuntos y todo lo demás que creas en la app: sitios guardados, enlaces de reserva, metas de tiempo, recordatorios «después de X», eventos importados ocultos | Mientras exista la cuenta. Eliminar la cuenta desde tu Perfil los borra de inmediato, junto con los archivos adjuntos |
| El nombre y el correo de quien reservó un hueco por tu enlace | Mientras el evento exista en el calendario de quien es su dueño. Se van con el evento, con la eliminación de la cuenta de esa persona, o antes a petición del propio invitado (véase el párrafo sobre reservas del §3) |
| Diario de emociones: registros de estado y «momentos» | Mientras exista la cuenta, o hasta que los borres tú: un registro suelto desde su ficha, el diario entero con el botón de Ajustes → «Diario de emociones» (app o web). No fijamos ninguna caducidad automática: este es tu archivo personal, y cuánto envejece lo decides tú |
| Medicación: pautas e historial de dosis | Mientras exista la cuenta, o hasta que elimines tú la pauta en la sección «Medicación»; eliminar una pauta se lleva consigo su historial de dosis |
| Registros de ánimo y cansancio, marcas de energía por hora | Mientras exista la cuenta. Ahora mismo no hay en la app ningún botón que borre estos registros: el registro de un día puede sobrescribirse con un valor nuevo, borrar el diario no los toca, y se van cuando se va la cuenta. Para que se eliminen antes, pídenoslo por correo (§12). No fijamos ninguna caducidad automática |
| Audio de la entrada por voz | No se guarda: se envía al proveedor de transcripción y se descarta en cuanto vuelve el texto |
| Historial del chat con el asistente | Mientras exista la cuenta. No fijamos caducidad automática: es tu conversación, y la app te la muestra |
| Chat de eventos en sesión en vivo | 90 días |
| Borrador de evento sin guardar | 30 días desde el último cambio. Esto es lo que empezaste a escribir en el formulario y no guardaste; un evento guardado es la fila de arriba |
| Tokens OAuth de sincronización de calendarios | Mientras la sincronización esté conectada; desconectarla en tu Perfil los elimina |
| Tokens de renovación de sesión | Hasta que caducan; los caducados los borra una tarea diaria |
| Tokens de verificación de correo y de restablecimiento de contraseña | Hasta que caducan (un enlace vive unas horas); los caducados los borra una tarea diaria, y los usados, en el momento de usarse |
| Tokens push de los dispositivos | Mientras el dispositivo esté activo. Un token cuya app no se ha abierto en más de 180 días se elimina; el siguiente arranque vuelve a registrarlo |
| Contadores de uso de IA (cupos del plan gratuito) | 24 meses |
| Registro de recordatorios enviados | 2 días |
| Recordatorios pospuestos («10 minutos más») | 1 día |
| Notificaciones dentro de la app | Las leídas se eliminan a los 30 días; las no leídas se quedan mientras exista la cuenta |
| Copias de seguridad cifradas | 7 días (los archivos de adjuntos, 3 días) y después se eliminan. Un dato borrado puede sobrevivir en una copia de seguridad durante ese mismo plazo |
| Registros técnicos del servidor | No se conservan más de lo necesario para el diagnóstico y la protección frente a abusos |
| Informes de fallos | Se conservan mientras hagan falta para corregir el fallo en cuestión |
| Mensajes enviados por el formulario de comentarios | 24 meses, o antes si lo pides. Si lo enviaste desde la dirección de tu cuenta y esa dirección está verificada, eliminar la cuenta borra también el mensaje, junto con el nombre y la dirección. Los mensajes enviados desde otra dirección no pueden atribuirse a la cuenta y no se borran con ella: el formulario funciona sin cuenta. Lo mismo vale para una dirección que no podamos vincular a una única cuenta (por ejemplo, cuando dos cuentas solo difieren en ella por mayúsculas y minúsculas): no tenemos base para atribuir ese mensaje a ninguna de las dos, y se va con el plazo general de arriba. El código por correo de ese formulario vive 10 minutos, uno usado desaparece de inmediato, y los no usados los elimina una tarea diaria |
| Registros de suscripción | Mientras exista la cuenta. Los datos de la transacción en sí los conservan Apple, Google y RevenueCat conforme a sus propios plazos |
| Registros de consentimiento: a qué diste tu consentimiento, cuándo y a qué revisión del texto | Mientras exista la cuenta. Esta es la prueba de que hubo consentimiento (art. 7(1)), así que vive lo mismo que la cuenta y se va con ella. Retirarlo no borra el registro: añade una fila de retirada |
12. Tus derechos
Tus derechos. Tienes derecho a: acceder a tus datos y recibir una copia en formato JSON legible por máquina (arts. 15 y 20); rectificar los datos inexactos (art. 16); suprimirlos, el «derecho al olvido» (art. 17); limitar el tratamiento (art. 18); oponerte al tratamiento que realizamos sobre la base del interés legítimo (art. 21); retirar cualquier consentimiento.
Cómo ejercerlos. Exportar todos tus datos en JSON y eliminar tu cuenta están en tu Perfil, tanto en la versión web como en la app móvil, sin necesidad de escribirnos. La exportación y el borrado aparte del diario de emociones están en Ajustes → «Diario de emociones», en ambas versiones. El consentimiento para los datos de salud (y su retirada), el interruptor de funciones de IA, el consentimiento aparte de «IA de ánimo» y la confirmación de 16 años o más también están en ambas versiones, en Ajustes. Todo lo demás, incluido el cambio de correo, la limitación del tratamiento y la oposición, por correo a kairoscope.contact@gmail.com. Respondemos en el plazo de un mes desde la solicitud; en casos complejos el plazo puede prorrogarse dos meses más, y te lo comunicaremos dentro del primer mes (art. 12(3)). Podemos pedirte que confirmes tu identidad escribiendo desde la propia dirección de la cuenta si tenemos dudas razonables.
Retirar el consentimiento surte efecto hacia el futuro y no hace ilícito el tratamiento realizado antes de la retirada (art. 7(3)). Los datos ya enviados a OpenAI o a Groq para atender tu petición no podemos retirarlos nosotros de sus sistemas.
Reclamaciones. Si crees que tratamos tus datos de forma ilícita, tienes derecho a presentar una reclamación ante una autoridad de control de protección de datos en el país de tu residencia, en tu lugar de trabajo o en el lugar de la supuesta infracción. Lista de autoridades de los Estados miembros de la UE: edpb.europa.eu/about-edpb/about-edpb/members_en. En Ucrania, la autoridad de control es el Defensor del Pueblo del Parlamento de Ucrania para los Derechos Humanos: ombudsman.gov.ua. No tienes que escribirnos antes, aunque normalmente resolvemos las cosas más rápido.
13. Cookies, almacenamiento local y analítica
Cookies y almacenamiento local. En la web: una cookie HttpOnly para el token de renovación de la autenticación, y localStorage para el tema, el idioma y la caché de sesión; dos claves que contienen datos personales (las coordenadas redondeadas para el tiempo y tus propias notas de recuperación) se limpian al cerrar sesión. En la app móvil, el token de renovación reside en el almacén seguro del sistema (Keychain / Android Keystore), y la cola de cambios sin conexión y las notas de recuperación residen en un almacén local cifrado aparte, cuya clave guarda ese mismo almacén del sistema; cerrar sesión los limpia junto con los adjuntos descargados. Los ajustes de apariencia (tema, idioma) se quedan: no son datos personales. No usamos cookies publicitarias ni píxeles de seguimiento en la web.
Analítica. Con tu consentimiento usamos Firebase Analytics (Google Ireland Ltd. y Google LLC) para medir la eficacia de la publicidad de nuestra app. La propia app envía dos eventos: el registro y el inicio de sesión. Además de esos, Firebase recoge sus propios eventos de uso estándar: aperturas de la app, inicios de sesión de uso, tiempo de interacción y actualizaciones de la app y del sistema. Con ellos viajan un identificador anónimo de instalación de la app, el modelo de tu dispositivo, la versión del sistema y de la app, el idioma y una ubicación aproximada deducida de tu dirección IP. Esos eventos automáticos no se pueden desactivar uno a uno: el consentimiento cubre el conjunto entero. Hemos desactivado el informe automático de vistas de pantalla, no se envía ningún contenido de tu calendario, tus tareas o tu diario, y no recogemos el identificador publicitario del dispositivo. Sin consentimiento, la analítica no se ejecuta en absoluto. El consentimiento se da por separado en cada dispositivo y no se traslada entre ellos; puedes cambiar de idea cuando quieras en Ajustes. Esto rige para la versión 1.0.2 de la app y posteriores. El interruptor vive en el código de la propia app, así que en versiones anteriores todavía instaladas en un dispositivo la analítica sigue recogiéndose sin él; actualizar la app activa la barrera. La versión web no tiene analítica de terceros en absoluto, pero la página de inicio de sesión sí carga los scripts de los botones de Google y Apple (§8), y solo con eso les revela tu dirección IP.
14. Seguridad
Transporte: HTTPS (TLS 1.2 y 1.3, HSTS). Autenticación: JWT junto con un token de renovación en una cookie HttpOnly, y contraseñas protegidas con bcrypt. Los datos de categoría especial —en concreto la nota de texto libre del diario de emociones, los nombres de los medicamentos y los mensajes del chat de IA— se cifran además a nivel de campo con AES-256-GCM, con una clave guardada aparte de la base de datos; sin esa clave, el servidor se niega a arrancar en producción. Las señales estructuradas del diario (etiquetas de emoción, zonas del cuerpo, desencadenantes, escalas) se guardan sin cifrado a nivel de campo porque hacen falta para calcular tus propias tendencias; el servidor no tiene ahora mismo cifrado a nivel de disco, y por eso el elemento más sensible —el texto libre— se protege a nivel de campo en su lugar. Los tokens OAuth de sincronización de calendarios están cifrados, y el token de suscripción al calendario se guarda a la vez con hash y cifrado. Las copias de seguridad se cifran con AES-256 antes de escribirse en disco, y el script se niega a hacer una copia sin clave. Los informes de fallos pasan por un filtro que elimina el contenido de tus registros, los tokens de acceso, tu correo y tu dirección IP: solo queda el identificador de cuenta. En la app móvil, el diario puede además bloquearse con un PIN guardado en el almacén seguro del sistema.
15. Menores
Kairoscope está pensado para personas de 16 años o más. En los Estados miembros de la UE que hayan fijado una edad de consentimiento digital menor (desde los 13), el servicio puede usarse a partir de esa edad. Al registrarte te pedimos que confirmes que cumples ese umbral de edad; la única excepción es una cuenta creada con un primer inicio de sesión con Google o Apple desde la pantalla de inicio de sesión (Términos, §1). No recogemos a sabiendas datos de nadie por debajo del umbral aplicable. Las funciones de IA sobre el diario de emociones exigen además una confirmación aparte de que tienes 16 años o más; esa confirmación puede retirarse en cualquier momento en Ajustes, y retirarla apaga con ella la «IA de ánimo». Si eres madre, padre o tutor y crees que tu hijo o hija ha creado una cuenta, escribe a kairoscope.contact@gmail.com y eliminaremos la cuenta y todos los datos en un plazo de 30 días.
16. Datos de usuario de Google y Uso Limitado
Cuando conectas la sincronización con Google Calendar, Kairoscope solicita acceso de solo lectura a tu Google Calendar (el ámbito «calendar.readonly» de Google Calendar). Usamos ese acceso únicamente para leer tus eventos de calendario existentes y mostrarlos junto a los de Kairoscope, de modo que puedas ver tu día entero y evitar solapes. Nunca creamos, editamos ni eliminamos nada en tu Google Calendar.
El uso y la transferencia por parte de Kairoscope de la información recibida de las API de Google a cualquier otra aplicación se atienen a la Política de Datos de Usuario de los Servicios de API de Google, incluidos los requisitos de Uso Limitado. En concreto, los datos de Google Calendar:
- se usan solo para prestar y mejorar las funciones de calendario descritas arriba;
- no se venden, y no se transfieren a terceros salvo para prestar esas funciones, para cumplir la legislación aplicable, o como parte de una fusión o adquisición;
- no se usan para publicidad;
- no los leen personas, salvo que des tu consentimiento explícito, que sea necesario por seguridad o para cumplir la ley, o que los datos estén agregados y anonimizados para operaciones internas.
El token OAuth cifrado se guarda solo mientras la sincronización esté conectada; desconectarla en tu Perfil lo elimina y revoca el acceso. También puedes revocar el acceso cuando quieras en myaccount.google.com/permissions.
17. Cambios en esta política
Los cambios sustanciales se anuncian en la app.
Esta política se publica en ucraniano, inglés, español y francés. La versión ucraniana es la auténtica; las demás son traducciones ofrecidas para tu comodidad, y en caso de discrepancia prevalece el texto ucraniano. Esto no limita ninguno de los derechos descritos en el §12, que puedes ejercer en cualquiera de estos idiomas.
18. Contacto
Politique de confidentialité de Kairoscope
Dernière mise à jour : 21 août 2026.
1. Responsable du traitement
Les données sont traitées par Yevhen Orestov (personne physique exploitant Kairoscope), Ukraine. Contact pour les questions relatives aux données : kairoscope.contact@gmail.com.
2. Ce que nous conservons
| Catégorie | Quoi |
|---|---|
| Compte | Adresse e-mail, mot de passe haché, nom affiché, fuseau horaire, langue, thème, format de l’heure, téléphone (facultatif), photo de profil (si tu en ajoutes une) |
| Agenda | Événements, tâches, catégories, modèles de journée, notes, objectifs de temps, pièces jointes (si tu en ajoutes) |
| Social | Amis, groupes, partage d’événements et de tâches, messages dans les séances partagées |
| Notifications | Abonnement push (navigateur, FCM, APNs via Expo), journal des rappels déjà envoyés |
| Journal des émotions (données de santé, art. 9) |
Entrées d’état : deux échelles de bien-être, étiquettes d’émotion, carte du corps (zones marquées), déclencheurs, note en texte libre (chiffrée), heure, lien facultatif avec un événement ; « moments » (horodatage seul) ; points sur l’humeur et la fatigue du matin et du soir |
| Médicaments (données de santé, art. 9) |
Noms et libellés des médicaments (chiffrés), schéma de prise, statut de chaque prise (prise ou manquée) et son heure |
| Bien-être (données de santé, art. 9) |
Repères d’énergie horaires, réglages du budget d’énergie — y compris tes propres listes de ce qui t’épuise et de ce qui te recharge |
| Chat IA | Historique de la conversation avec l’assistant (contenu chiffré), compteurs d’utilisation de l’IA |
| Voix (transitoire) | Audio pour la reconnaissance vocale — envoyé à Groq (whisper-large-v3-turbo), avec OpenAI Whisper en secours ; non conservé après la transcription |
| Synchronisation | Jeton OAuth de l’agenda externe (chiffré) et événements importés — uniquement si tu as connecté Google/Microsoft toi-même |
| Localisation (premium) | Coordonnées GPS précises et adresses (domicile, événements, lieux enregistrés) — traitées par Google Maps Platform pour les rappels selon le lieu, la saisie assistée d’adresses et le temps de trajet ; uniquement quand tu utilises ces fonctions |
| Lien d’agenda (ICS) | Un jeton d’abonnement unique, si tu actives la fonction — conservé haché et chiffré (voir §10) |
| Abonnement | Ton identifiant de compte dans le système d’achat, l’état de l’abonnement, les codes promo utilisés |
| Analyse d’usage (application mobile) | Identifiant anonyme d’installation, modèle de l’appareil, version du système, langue, pays approximatif d’après l’IP, événements « inscription » et « connexion » (voir §13) |
| Données techniques | Adresse IP (limitation du débit de requêtes et protection contre les abus), rapports de plantage (version de l’application, appareil, suite d’écrans, identifiant de compte) |
| Retours | Adresse e-mail, nom et texte du message, si tu nous écris via le formulaire |
| Invité d’une réservation | Le nom et l’adresse e-mail de la personne qui a réservé un créneau via le lien public de réservation d’un utilisateur. Conservés dans des champs dédiés de l’événement ; le nom fait aussi partie du titre de l’événement. Cette personne n’a pas de compte Kairoscope — voir le paragraphe distinct au §3 |
3. Pourquoi nous les traitons, et sur quelle base légale
| Finalité | Catégories de données | Base légale |
|---|---|---|
| Créer et faire fonctionner ton compte, la connexion, la réinitialisation du mot de passe | Compte | Art. 6(1)(b), exécution d’un contrat |
| Afficher ton agenda : événements, tâches, catégories, modèles, pièces jointes | Agenda | Art. 6(1)(b) |
| Rappels (push, e-mail) | Notifications, heures des événements | Art. 6(1)(b) |
| Partage avec des amis et des groupes | Social | Art. 6(1)(b) |
| Synchronisation avec un agenda externe (lecture seule) | Synchronisation | Art. 6(1)(a), consentement — tu la connectes toi-même et peux la déconnecter |
| Journal des émotions, carte du corps, déclencheurs, notes, points réguliers | Données de santé | Art. 9(2)(a), consentement explicite, avec l’art. 6(1)(a) — voir §4 |
| Rappels de médicaments et historique des prises | Données de santé | Art. 9(2)(a), consentement explicite, avec l’art. 6(1)(a) — voir §4 |
| Budget d’énergie et repères d’énergie horaires | Données de santé | Art. 9(2)(a), consentement explicite, avec l’art. 6(1)(a) — voir §4 |
| Fonctions IA sur le texte : chat, catégorisation, suggestions, planification de la journée, conseil sur la fatigue du jour, proposition de récupération | Titres d’événements et de tâches, heures, créneaux libres ; pour le conseil sur la fatigue, la proposition de récupération et la planification de la journée, aussi tes listes de ce qui t’épuise et de ce qui te recharge | Art. 6(1)(a), consentement — l’interrupteur « Fonctions IA » dans les Réglages. Pour les listes épuise/recharge, il s’agit en même temps d’une catégorie particulière (art. 9(2)(a)) — voir la mise en garde au §4 |
| IA sur le journal : voix vers étiquettes, bilan hebdomadaire | Audio, agrégats du journal | Art. 9(2)(a), consentement explicite distinct — l’interrupteur « IA humeur » |
| Rappels selon le lieu, partir à temps, suggestions d’adresses | Localisation | Art. 6(1)(a), consentement |
| Abonnement et paiements | Abonnement | Art. 6(1)(b), exécution d’un contrat |
| Protection contre les abus, limitation du débit, rapports de plantage | Données techniques | Art. 6(1)(f), intérêt légitime à la sécurité et à la disponibilité du service |
| Répondre aux messages envoyés via le formulaire de retour | Retours | Art. 6(1)(f), intérêt légitime à traiter ta demande |
| Mesurer l’efficacité de la publicité de l’application | Analyse d’usage | Consentement (art. 6(1)(a)) ; sans consentement l’analyse ne s’exécute pas, interrupteur dans les Réglages. S’applique à partir de la version 1.0.2 de l’application — voir §13 |
| Réserver un créneau via un lien public | Invité d’une réservation | Art. 6(1)(f), intérêt légitime des deux parties à tenir la réunion convenue |
Si tu réserves un créneau via le lien de quelqu’un d’autre. Quand une personne partage un lien de réservation Kairoscope et que tu choisis un créneau, nous conservons le nom et l’adresse e-mail que tu indiques afin que la personne propriétaire de l’agenda sache avec qui est la réunion. La base légale est l’intérêt légitime des deux parties à tenir la réunion convenue (art. 6(1)(f)). Ton nom devient une partie du titre de l’événement dans son agenda, donc toute personne à qui elle montre cet agenda, ou avec qui elle partage l’événement, peut le lire ; ton adresse e-mail n’est visible que par elle. Ton adresse e-mail reste sur notre serveur en Allemagne et ne va nulle part ailleurs. Ton nom est un autre sujet, et c’est pourquoi il est signalé à part ici : il fait partie du titre de l’événement, et le titre d’un événement quitte notre serveur du fait de l’usage ordinaire que cette personne fait de l’application — dans le texte d’un rappel push si elle en pose un sur cet événement (Expo, Apple, Google, États-Unis), vers OpenAI (États-Unis) si elle utilise une fonction IA pour cette journée, vers son fournisseur d’agenda externe si elle y a abonné son flux, et dans une notification envoyée à un ami avec qui elle partage l’événement. Ces destinataires, leurs pays et les mécanismes de transfert sont indiqués aux §7 et §8. Ces données sont conservées aussi longtemps que l’événement lui-même existe. Tu peux nous demander de les supprimer — écris à kairoscope.contact@gmail.com : nous retirons le nom du titre de l’événement et effaçons le nom et l’adresse e-mail, tandis que l’événement lui-même reste dans son agenda. Tu disposes des mêmes droits que ceux décrits au §12, même si tu n’as pas de compte ici.
4. Données de santé
Catégorie particulière de données (article 9 du RGPD). Le journal des émotions, la carte du corps, les déclencheurs, les notes d’état, les points sur l’humeur et la fatigue, les repères d’énergie horaires, ainsi que ton schéma de prise de médicaments et l’historique des prises sont des données de santé. Nous les traitons sur la base de ton consentement explicite (art. 9(2)(a) avec l’art. 6(1)(a)) et uniquement pour t’afficher tes propres entrées, rappels et tendances.
Aujourd’hui, ce consentement s’exprime par le fait que tu actives ces fonctions et écris les entrées toi-même. Une confirmation dédiée, qui enregistre la date et la version de ce texte, est en cours d’ajout — cette page sera mise à jour avec elle.
Aucune des deux fonctions ne fait quoi que ce soit tant que tu ne la démarres pas : une entrée de journal n’existe que si tu la crées, et les rappels de médicaments n’existent que si tu ajoutes un schéma.
Ces données ne servent jamais à la publicité et ne sont jamais montrées à tes amis. Les entrées du journal et les données de médicaments ne sont pas envoyées aux prestataires d’IA sans le consentement distinct « IA humeur » (§5). Une exception que nous nommons clairement : dès que tu actives l’interrupteur général « Fonctions IA », tes listes de ce qui t’épuise et de ce qui te recharge partent vers OpenAI avec le programme de la journée — dans le conseil sur la fatigue du jour et dans la planification de la journée ; la proposition de récupération envoie la liste de ce qui te recharge. Il n’est pas nécessaire d’ouvrir le conseil sur la fatigue pour cela : utiliser l’une de ces fonctions suffit. Cela relève du consentement IA général, pas de « IA humeur ». Les repères d’énergie horaires eux-mêmes, ainsi que les points sur l’humeur et la fatigue, n’y sont pas envoyés. La note en texte libre du journal, le nom du médicament et les messages du chat IA sont chiffrés au niveau du champ ; les autres signaux du journal (étiquettes d’émotion, zones du corps, déclencheurs, échelles) sont conservés sans chiffrement au niveau du champ, car ce sont eux qui servent à calculer tes propres tendances.
Les rappels de médicaments et ce que dit la notification. Le nom d’un médicament peut révéler un diagnostic : c’est pourquoi il est chiffré au niveau du champ dans notre base de données et, pour la même raison, pourquoi il ne fait pas partie du texte de la notification par défaut. La notification dit seulement « C’est l’heure de prendre ton médicament » ; l’application récupère le nom réel depuis notre propre API et l’affiche sur l’appareil. La raison est simple : une notification te parvient par des intermédiaires — Expo (650 Industries, États-Unis), puis Apple APNs ou Google FCM — et ceux-ci lisent le texte de la notification. Dans Réglages → « Médicaments » se trouve un interrupteur, « Afficher le nom du médicament dans les notifications », désactivé par défaut ; si tu l’actives, le nom part vers ces services et s’affiche sur ton écran verrouillé. Ce que l’interrupteur ne peut masquer dans aucun des deux états : le fait que tu reçois des rappels de médicaments, et à quels moments — la notification est marquée comme telle pour que le bouton « Pris » fonctionne et pour qu’Android ne la coupe pas avec les rappels ordinaires. Masquer cela aussi reviendrait à renoncer entièrement aux rappels de médicaments côté serveur. Le push web est chiffré de bout en bout (VAPID), donc là, même le service de distribution ne lit pas le texte ; l’interrupteur le gouverne quand même, parce que « afficher le nom dans les notifications » est une promesse, pas deux.
Tu peux exporter le journal dans un fichier JSON distinct ou l’effacer entièrement sans supprimer ton compte : Réglages → « Journal des émotions », aussi bien dans l’application mobile que dans la version web. Il fait aussi partie de l’export complet du compte (§12) et est effacé avec le compte. Les schémas de prise se suppriment un par un dans la section « Médicaments », avec l’historique des prises correspondant ; une copie de tes données de médicaments provient de l’export du compte. Pour les points sur l’humeur et la fatigue et pour les repères d’énergie horaires, il n’existe aucune commande d’effacement autonome — le §11 le détaille.
5. Traitement par l’IA
Les fonctions IA (transcription vocale, chat, catégorisation, suggestions) ne s’activent qu’après que tu les as autorisées dans ton profil, et n’envoient aux prestataires d’IA que le contexte minimal nécessaire — titres d’événements, heures, créneaux libres et, pour le conseil sur la fatigue du jour, la proposition de récupération et la planification de la journée, tes listes épuise/recharge (§4). Les fonctions textuelles (chat, catégorisation, suggestions) sont traitées par OpenAI ; la reconnaissance vocale (voix vers texte) est traitée par Groq (whisper-large-v3-turbo), avec OpenAI Whisper en secours. Les entrées du journal des émotions ne vont à l’IA qu’avec le consentement distinct « IA humeur » et une confirmation de 16 ans ou plus ; pour le bilan hebdomadaire, le serveur calcule des agrégats et n’envoie pas les notes elles-mêmes. Les faits sont calculés de façon déterministe sur notre serveur ; l’IA n’agit jamais sans ta confirmation.
Décisions automatisées (article 22 du RGPD). Kairoscope ne prend aucune décision te concernant fondée uniquement sur un traitement automatisé, et n’effectue aucun profilage produisant des effets juridiques ou vous affectant de manière significative de façon similaire. L’IA ne fait que proposer : créer un événement, suggérer une étiquette d’émotion, trouver un créneau libre. Toute proposition n’est appliquée qu’après ta confirmation dans l’interface, et le serveur écarte les propositions qui renvoient à des événements ou des contacts inexistants. Les faits (chevauchements, créneaux libres, statistiques) sont calculés de façon déterministe sur notre serveur, pas par un modèle de langage. La carte de soutien en cas de crise se déclenche par correspondance déterministe de phrases sur ton appareil ; elle n’est jamais envoyée nulle part, ne prévient jamais personne et n’empêche jamais l’enregistrement d’une entrée.
6. Où résident les données
PostgreSQL, les fichiers joints et les sauvegardes résident sur un serveur de Hetzner Online GmbH en Allemagne (UE). Les sauvegardes sont chiffrées.
7. Transferts internationaux
Le stockage principal est dans l’UE, mais une partie du traitement a lieu chez des prestataires établis aux États-Unis : OpenAI, Groq Inc., RevenueCat Inc., Expo (650 Industries, Inc.), Google LLC (Firebase, FCM, Maps, SMTP), Apple Inc. (APNs), Microsoft Corp. (synchronisation d’agendas). Ce que chacun reçoit exactement est indiqué au §8. Les données du journal des émotions ne sont transférées aux États-Unis que si tu as activé séparément « IA humeur » ; sinon, elles ne quittent pas l’UE.
L’exploitant de Kairoscope est établi en Ukraine — un pays pour lequel la Commission européenne n’a pas adopté de décision d’adéquation — de sorte que son propre accès aux données constitue également un transfert hors de l’EEE.
Les mécanismes de l’article 46 pour ces transferts sont les Clauses Contractuelles Types de la Commission européenne, dans le cadre des accords de sous-traitance conclus avec les prestataires, et, lorsqu’elle s’applique, la certification du destinataire au titre de l’EU-US Data Privacy Framework. Nous finalisons actuellement ces accords avec chaque prestataire ; tu peux demander l’état actuel et une copie des garanties en vigueur à kairoscope.contact@gmail.com. Cette page sera mise à jour dès que ce sera fait.
8. Avec qui nous partageons les données
| Destinataire | Ce que nous envoyons | Pourquoi | Pays |
|---|---|---|---|
| Hetzner Online GmbH | Toutes les données du service (hébergement) | Héberger la base de données, les fichiers et les sauvegardes | Allemagne |
| OpenAI | Titres d’événements et de tâches, heures, créneaux libres, messages de chat, tes listes épuise/recharge (pour le conseil sur la fatigue du jour, la proposition de récupération et la planification de la journée) ; audio en secours | Fonctions IA textuelles, reconnaissance vocale de secours | États-Unis |
| Groq Inc. | Audio de la saisie vocale | Reconnaissance vocale, prestataire principal | États-Unis |
| Google / Microsoft | Jeton OAuth, lecture de ton agenda | Synchronisation, uniquement si tu l’as connectée | États-Unis |
| Google Maps Platform | Coordonnées et adresses | Rappels selon le lieu, temps de trajet, suggestions d’adresses | États-Unis |
| Google FCM, Apple APNs, Expo (650 Industries) | Jeton push et le texte de la notification, titres d’événements compris. Pas le nom du médicament : par défaut, un rappel de médicament indique seulement qu’une prise est due, et l’application affiche le nom elle-même (voir §4). Si tu actives toi-même « Afficher le nom du médicament dans les notifications », le nom part également ici | Livrer les rappels sur ton appareil | États-Unis |
| Google (Gmail SMTP) | Adresses e-mail et contenu des messages | Vérification, réinitialisation du mot de passe, rappels par e-mail | États-Unis |
| RevenueCat Inc. | Ton identifiant de compte Kairoscope, l’identifiant de l’achat, l’état de l’abonnement | Vérifier l’état de l’abonnement | États-Unis |
| Firebase Analytics (Google) | Identifiant anonyme d’installation, modèle de l’appareil, version du système et de l’application, langue, localisation approximative d’après l’IP ; événements d’inscription et de connexion, plus l’ensemble automatique standard de Firebase (ouvertures de l’application, débuts de session, temps d’interaction, mises à jour de l’application et du système) | Mesurer l’efficacité de la publicité de l’application (§13) | États-Unis |
| Apple, Google | Données de transaction | Traitement des paiements dans les magasins d’applications | États-Unis |
| GlitchTip | Version de l’application, appareil, suite d’écrans, identifiant de compte | Rapports de plantage ; il s’agit de notre propre serveur, pas d’un tiers | UE |
De plus, si tu actives la météo du jour, ton appareil appelle lui-même le service de prévision Open-Meteo avec des coordonnées arrondies à environ un kilomètre. Ces coordonnées ne passent pas par notre serveur et nous ne les conservons pas.
Les boutons de connexion Google et Apple de la version web fonctionnent de la même façon — en dehors de notre serveur. Quand tu ouvres la page de connexion ou d’inscription, ton navigateur charge les scripts de ces boutons depuis accounts.google.com (Google Identity Services) et appleid.cdn-apple.com (Sign in with Apple). Cela se produit à l’ouverture de la page, avant que tu n’appuies sur quoi que ce soit, de sorte que ton adresse IP et l’adresse de cette page deviennent connues de Google et d’Apple, même si tu finis par te connecter avec un mot de passe ou que tu fermes simplement l’onglet. Ces requêtes partent de ton appareil ; nous ne les voyons pas et n’en conservons rien, et ce que le fournisseur en fait relève de lui, pas de nous. L’application mobile ne fait pas cela : son écran de connexion ne charge rien, et la connexion avec Google ou Apple ne commence qu’au moment où tu touches le bouton correspondant.
Nous ne vendons pas de données. Tout nouveau destinataire est annoncé dans l’application.
9. Localisation
Kairoscope accède à la localisation précise de ton appareil uniquement quand tu actives une fonction qui en a besoin (rappels selon le lieu, « partir à temps », suggestions d’adresses). Nous collectons les coordonnées GPS et les adresses (domicile, événements) que tu saisis, et nous les utilisons pour déclencher les rappels selon le lieu (quand tu arrives quelque part ou que tu en pars), calculer le temps de trajet et les signaux de départ, et compléter les adresses. Pour les rappels selon le lieu, l’application accède à la localisation en arrière-plan — uniquement pour la comparer aux lieux que tu as toi-même configurés ; cette comparaison a lieu sur ton appareil, et ces coordonnées d’arrière-plan ne sont envoyées nulle part. Les coordonnées et adresses que tu enregistres, ainsi que ta position actuelle lorsqu’un événement affiche l’estimation « partir à temps », sont envoyées à Google Maps Platform pour calculer les itinéraires, les temps de trajet et les suggestions d’adresses. Si la météo du jour est activée, des coordonnées arrondies à environ un kilomètre partent de ton appareil vers le service de prévision Open-Meteo. Tu peux retirer la condition de lieu d’un rappel, supprimer les lieux enregistrés et révoquer l’autorisation de localisation dans les réglages de ton système à tout moment. La localisation n’est jamais utilisée à des fins publicitaires ni vendue.
10. Lien d’agenda (ICS)
Si tu actives l’abonnement à l’agenda, nous créons un lien unique qui diffuse ton agenda sans mot de passe : quiconque obtient le lien voit tous tes événements — et pas seulement le titre et l’heure, mais aussi le texte de la note et le lieu de chaque événement, sur tout ton historique, pas seulement aujourd’hui. La note, c’est ce même texte libre que le §14 désigne comme la chose la plus sensible que tu écris : traite donc ce lien comme une clé de tout l’agenda, pas comme une liste de titres. Le jeton lui-même est conservé haché et chiffré, de sorte qu’il ne peut pas être lu depuis la base de données. Ne publie pas le lien. Il n’existe pas encore de bouton de révocation : si le lien s’est retrouvé là où il ne devait pas, écris à kairoscope.contact@gmail.com et nous le remplacerons.
11. Durées de conservation
| Catégorie | Conservation |
|---|---|
| Compte, agenda, tâches, catégories, modèles, pièces jointes, et tout le reste de ce que tu crées dans l’application : lieux enregistrés, liens de réservation, objectifs de temps, rappels « après X », événements importés masqués | Aussi longtemps que le compte existe. Supprimer le compte depuis ton Profil les efface immédiatement, avec les fichiers joints |
| Le nom et l’adresse e-mail d’un invité ayant réservé un créneau via ton lien | Aussi longtemps que l’événement lui-même existe dans l’agenda de son propriétaire. Ils partent avec l’événement, avec la suppression du compte du propriétaire, ou plus tôt à la demande de l’invité (voir le paragraphe sur les réservations au §3) |
| Journal des émotions : entrées d’état et « moments » | Aussi longtemps que le compte existe, ou jusqu’à ce que tu les effaces toi-même — une entrée depuis sa fiche, le journal entier avec le bouton dans Réglages → « Journal des émotions » (application ou web). Nous ne fixons aucune expiration automatique : c’est ton archive personnelle, et son ancienneté est ta décision |
| Médicaments : schémas et historique des prises | Aussi longtemps que le compte existe, ou jusqu’à ce que tu supprimes toi-même le schéma dans la section « Médicaments » — supprimer un schéma emporte son historique de prises |
| Points sur l’humeur et la fatigue, repères d’énergie horaires | Aussi longtemps que le compte existe. Il n’existe actuellement dans l’application aucun bouton qui efface ces enregistrements : le point d’une journée peut être écrasé par une nouvelle valeur, effacer le journal n’y touche pas, et ils partent quand le compte part. Pour les faire supprimer plus tôt, demande-le-nous par e-mail (§12). Nous ne fixons aucune expiration automatique |
| Audio de la saisie vocale | Non conservé : envoyé au prestataire de transcription et écarté dès que le texte revient |
| Historique du chat avec l’assistant | Aussi longtemps que le compte existe. Nous ne fixons aucune expiration automatique : c’est ta conversation, et l’application te la réaffiche |
| Chat d’événement en séance en direct | 90 jours |
| Brouillon d’événement non enregistré | 30 jours après la dernière modification. Il s’agit de ce que tu as commencé à saisir dans le formulaire sans l’enregistrer ; un événement enregistré, c’est la ligne au-dessus |
| Jetons OAuth de synchronisation d’agenda | Aussi longtemps que la synchronisation est connectée ; la déconnecter dans ton Profil les supprime |
| Jetons de rafraîchissement de session | Jusqu’à expiration ; les jetons expirés sont supprimés par une tâche quotidienne |
| Jetons de vérification d’e-mail et de réinitialisation de mot de passe | Jusqu’à expiration (un lien vit quelques heures) ; les expirés sont supprimés par une tâche quotidienne, les utilisés au moment même de leur usage |
| Jetons push des appareils | Tant que l’appareil est actif. Un jeton dont l’application ne s’est pas ouverte depuis plus de 180 jours est supprimé ; le lancement suivant l’enregistre à nouveau |
| Compteurs d’utilisation de l’IA (quotas de l’offre gratuite) | 24 mois |
| Journal des rappels envoyés | 2 jours |
| Rappels reportés (« encore 10 minutes ») | 1 jour |
| Notifications dans l’application | Celles qui sont lues sont supprimées au bout de 30 jours ; les non lues restent aussi longtemps que le compte existe |
| Sauvegardes chiffrées | 7 jours (archives de pièces jointes : 3 jours), puis supprimées. Une donnée supprimée peut survivre dans une copie de sauvegarde pendant la même durée |
| Journaux techniques du serveur | Conservés pas plus longtemps que nécessaire au diagnostic et à la protection contre les abus |
| Rapports de plantage | Conservés tant qu’ils sont nécessaires à la correction du défaut concerné |
| Messages envoyés via le formulaire de retour | 24 mois, ou plus tôt à ta demande. Si tu l’as envoyé depuis l’adresse de ton compte et que cette adresse est vérifiée, supprimer le compte efface aussi le message, avec le nom et l’adresse. Les messages envoyés depuis une autre adresse ne peuvent pas être rattachés au compte et ne sont pas effacés avec lui : le formulaire fonctionne sans compte. Il en va de même pour une adresse que nous ne pouvons rattacher à un seul compte (par exemple lorsque deux comptes n’en diffèrent que par la casse) : nous n’avons aucune base pour attribuer un tel message à l’un ou à l’autre, et il part avec la durée générale ci-dessus. Le code envoyé par e-mail pour ce formulaire vit 10 minutes, un code utilisé disparaît aussitôt, et les codes non utilisés sont supprimés par une tâche quotidienne |
| Enregistrements d’abonnement | Aussi longtemps que le compte existe. Les données de transaction elles-mêmes sont conservées par Apple, Google et RevenueCat selon leurs propres durées |
| Enregistrements de consentement : ce à quoi tu as consenti, quand, et quelle révision du texte | Aussi longtemps que le compte existe. C’est la preuve que le consentement a existé (art. 7(1)), il vit donc aussi longtemps que le compte et part avec lui. Le retrait n’efface pas l’enregistrement : il ajoute une ligne de retrait |
12. Tes droits
Tes droits. Tu as le droit : d’accéder à tes données et d’en recevoir une copie dans un format JSON lisible par machine (art. 15, 20) ; de rectifier des données inexactes (art. 16) ; de les effacer, le « droit à l’oubli » (art. 17) ; de limiter le traitement (art. 18) ; de t’opposer au traitement que nous effectuons sur la base de l’intérêt légitime (art. 21) ; de retirer tout consentement.
Comment les exercer. L’export de toutes tes données en JSON et la suppression de ton compte se trouvent dans ton Profil, aussi bien dans la version web que dans l’application mobile, sans avoir à nous écrire. Un export et un effacement distincts du journal des émotions se trouvent dans Réglages → « Journal des émotions », dans les deux versions. Le consentement aux données de santé (et son retrait), l’interrupteur des fonctions IA, le consentement distinct « IA humeur » et la confirmation des 16 ans sont eux aussi dans les deux versions, sous Réglages. Pour tout le reste, y compris le changement d’adresse e-mail, la limitation du traitement et l’opposition, écris à kairoscope.contact@gmail.com. Nous répondons dans un délai d’un mois à compter de la demande ; dans les cas complexes, ce délai peut être prolongé de deux mois supplémentaires, et nous t’en informerons dans le premier mois (art. 12(3)). Nous pouvons te demander de confirmer ton identité en écrivant depuis l’adresse même du compte si nous avons des doutes raisonnables.
Le retrait du consentement vaut pour l’avenir et ne rend pas illicite le traitement effectué avant ce retrait (art. 7(3)). Les données déjà envoyées à OpenAI ou à Groq pour répondre à ta demande ne peuvent pas être rappelées de leurs systèmes par nos soins.
Réclamations. Si tu estimes que nous traitons tes données de manière illicite, tu as le droit d’introduire une réclamation auprès d’une autorité de contrôle en matière de protection des données, dans le pays de ta résidence, sur ton lieu de travail ou au lieu de la violation alléguée. Liste des autorités des États membres de l’UE : edpb.europa.eu/about-edpb/about-edpb/members_en. En Ukraine, l’autorité de contrôle est le Représentant du Parlement ukrainien aux droits de l’homme : ombudsman.gov.ua. Tu n’as pas à nous contacter d’abord, même si nous réglons généralement les choses plus vite.
13. Cookies, stockage local et analyse d’usage
Cookies et stockage local. Sur le web : un cookie HttpOnly pour le jeton de rafraîchissement de l’authentification, et localStorage pour le thème, la langue et le cache de session ; deux clés contenant des données personnelles (les coordonnées arrondies pour la météo et tes propres notes de récupération) sont effacées à la déconnexion. Dans l’application mobile, le jeton de rafraîchissement réside dans le coffre sécurisé du système (Keychain / Android Keystore), et la file d’attente des modifications hors ligne ainsi que les notes de récupération résident dans un stockage local chiffré distinct, dont la clé est détenue par ce même coffre système ; la déconnexion les efface avec les pièces jointes téléchargées. Les réglages d’apparence (thème, langue) restent : ce ne sont pas des données personnelles. Nous n’utilisons aucun cookie publicitaire ni aucun pixel de suivi sur le web.
Analyse d’usage. Avec ton consentement, nous utilisons Firebase Analytics (Google Ireland Ltd. et Google LLC) pour mesurer l’efficacité de la publicité de notre application. L’application elle-même envoie deux événements : l’inscription et la connexion. En plus de ceux-là, Firebase collecte ses propres événements d’usage standard : ouvertures de l’application, débuts de session, temps d’interaction, mises à jour de l’application et du système. Ils s’accompagnent d’un identifiant anonyme d’installation, du modèle de ton appareil, de la version du système et de l’application, de la langue et d’une localisation approximative déduite de ton adresse IP. Ces événements automatiques ne peuvent pas être désactivés un par un — le consentement porte sur l’ensemble. Nous avons désactivé le rapport automatique des vues d’écran, aucun contenu de ton agenda, de tes tâches ou de ton journal n’est envoyé, et nous ne collectons pas l’identifiant publicitaire de l’appareil. Sans consentement, l’analyse ne s’exécute pas du tout. Le consentement se donne séparément sur chaque appareil et ne se reporte pas de l’un à l’autre ; tu peux changer d’avis à tout moment dans les Réglages. Ceci s’applique à la version 1.0.2 de l’application et aux suivantes. L’interrupteur vit dans le code de l’application elle-même : sur les versions antérieures encore installées sur un appareil, l’analyse continue donc d’être collectée sans lui ; mettre l’application à jour active le verrou. La version web ne comporte aucune analyse tierce, mais la page de connexion charge bien les scripts des boutons Google et Apple (§8), ce qui suffit à leur révéler ton adresse IP.
14. Sécurité
Transport : HTTPS (TLS 1.2 et 1.3, HSTS). Authentification : JWT accompagné d’un jeton de rafraîchissement dans un cookie HttpOnly, mots de passe protégés par bcrypt. Les données de catégorie particulière — à savoir la note en texte libre du journal des émotions, les noms de médicaments et les messages du chat IA — sont en outre chiffrées au niveau du champ avec AES-256-GCM, au moyen d’une clé conservée séparément de la base de données ; sans cette clé, le serveur refuse de démarrer en production. Les signaux structurés du journal (étiquettes d’émotion, zones du corps, déclencheurs, échelles) sont conservés sans chiffrement au niveau du champ parce qu’ils sont nécessaires au calcul de tes propres tendances ; le serveur ne dispose pas actuellement de chiffrement au niveau du disque, et c’est pourquoi l’élément le plus sensible — le texte libre — est protégé au niveau du champ à la place. Les jetons OAuth de synchronisation d’agenda sont chiffrés, et le jeton d’abonnement à l’agenda est conservé à la fois haché et chiffré. Les sauvegardes sont chiffrées avec AES-256 avant d’être écrites sur le disque, et le script refuse de faire une sauvegarde sans clé. Les rapports de plantage passent par un filtre qui retire le contenu de tes entrées, les jetons d’accès, ton adresse e-mail et ton adresse IP — seul l’identifiant de compte demeure. Dans l’application mobile, le journal peut en outre être verrouillé par un code conservé dans le coffre sécurisé du système.
15. Mineurs
Kairoscope s’adresse aux personnes de 16 ans et plus. Dans les États membres de l’UE ayant fixé un âge du consentement numérique inférieur (à partir de 13 ans), le service peut être utilisé dès cet âge. À l’inscription, nous te demandons de confirmer que tu atteins ce seuil d’âge ; la seule exception est un compte créé par une première connexion avec Google ou Apple depuis l’écran de connexion (Conditions, §1). Nous ne collectons pas sciemment de données auprès de personnes n’ayant pas atteint le seuil applicable. Les fonctions IA appliquées au journal des émotions exigent en outre une confirmation distincte que tu as 16 ans ou plus ; cette confirmation peut être retirée à tout moment dans les Réglages, et son retrait désactive « IA humeur » avec elle. Si tu es parent et penses que ton enfant a créé un compte, écris à kairoscope.contact@gmail.com et nous supprimerons le compte et toutes les données dans un délai de 30 jours.
16. Données utilisateur Google et Usage limité
Lorsque tu connectes la synchronisation Google Agenda, Kairoscope demande un accès en lecture seule à ton Google Agenda (la portée « calendar.readonly » de Google Calendar). Nous utilisons cet accès uniquement pour lire tes événements d’agenda existants et les afficher à côté de tes événements Kairoscope, afin que tu voies ta journée entière et évites les conflits de planification. Nous ne créons, ne modifions ni ne supprimons jamais quoi que ce soit dans ton Google Agenda.
L’utilisation et le transfert par Kairoscope des informations reçues des API de Google vers toute autre application respectent la Google API Services User Data Policy, y compris ses exigences d’usage limité. Concrètement, les données de Google Agenda :
- ne servent qu’à fournir et améliorer les fonctions d’agenda décrites ci-dessus ;
- ne sont pas vendues, et ne sont pas transférées à des tiers, sauf pour fournir ces fonctions, pour respecter la législation applicable, ou dans le cadre d’une fusion ou d’une acquisition ;
- ne sont pas utilisées à des fins publicitaires ;
- ne sont pas lues par des personnes, sauf si tu donnes un consentement explicite, si cela est nécessaire pour la sécurité ou pour respecter la loi, ou si les données sont agrégées et anonymisées à des fins d’exploitation interne.
Le jeton OAuth chiffré n’est conservé que tant que la synchronisation est connectée ; la déconnecter dans ton Profil le supprime et révoque l’accès. Tu peux aussi révoquer l’accès à tout moment sur myaccount.google.com/permissions.
17. Modifications de cette politique
Les modifications substantielles sont annoncées dans l’application.
Cette politique est publiée en ukrainien, en anglais, en espagnol et en français. La version ukrainienne fait foi ; les autres sont des traductions fournies pour ta commodité, et en cas de divergence, le texte ukrainien prévaut. Cela ne limite aucun des droits décrits au §12, que tu peux exercer dans l’une quelconque de ces langues.