1. Qui sommes-nous
Whenza est une application web (PWA) qui aide un groupe d'amis à trouver automatiquement les créneaux où tout le monde est libre, à partir de leurs calendriers Google et Microsoft.
Whenza est exploitée par un développeur individuel basé en France et n'est affiliée à aucune entreprise. Contact : whenzaapp@outlook.com.
2. Données collectées et finalité
Whenza accède à et utilise les données suivantes :
- Email : fourni par Google ou Microsoft via le scope OpenID
email. C'est notre seule clé d'identité. Il est stocké chiffré (AES-256-GCM), accompagné d'un hash déterministe servant uniquement à la recherche — l'adresse n'est jamais conservée en clair dans notre base. - Nom d'affichage : Whenza ne demande pas le scope
profile. Google et Microsoft ne nous transmettent donc ni ton nom ni ta photo. On te demande toi-même un prénom (ou pseudo) à la première connexion, modifiable à tout moment dans les paramètres. Aucune photo de profil n'est collectée ni stockée : les avatars sont de simples initiales. - Plages occupées de ton calendrier (uniquement début, fin et statut libre/occupé) : récupérées en temps réel via le scope
calendar.readonly(Google) ouCalendars.Read(Microsoft).
Nous ne lisons jamais le titre, la description, les invités ou le lieu de tes événements. Côté Google, nous interrogeons l'API Calendar Events en restreignant la réponse aux seuls champs horaires et de statut (start, end, transparency, status) — aucun champ de contenu n'est demandé. Côté Microsoft, nous utilisons/me/calendarViewavec$select=start,end,showAs. Côté Apple (CalDAV), seules les bornes horaires des événements sont lues. - Apple iCloud (optionnel, via CalDAV) : si tu connectes ton compte Apple, tu nous fournis un mot de passe pour application que tu génères toi-même sur appleid.apple.com. Apple ne propose pas d'OAuth pour le calendrier ; ce mot de passe est le seul moyen technique pour une app web tierce de lire un agenda iCloud.
Surface technique : ce mot de passe donne potentiellement accès à CalDAV (calendriers), CardDAV (contacts), WebDAV (Drive) et IMAP (Mail) d'iCloud. Whenza n'utilise QUE CalDAV pour les calendriers. Tu peux révoquer ce mot de passe à tout moment depuis ton compte Apple, ce qui coupe immédiatement notre accès. - Tokens OAuth et mot de passe Apple : fournis par Google, Microsoft, ou toi-même pour Apple. Stockés chiffrés au niveau applicatif (AES-256-GCM, clé dérivée d'un secret serveur) puis chiffrés à nouveau au repos par notre hébergeur de base de données. Un compromis de la base seule ne donne pas accès aux tokens.
- Événements créés dans Whenza (titre, fenêtre de dates, durée souhaitée, lien d'invitation, créneau verrouillé) : saisis par toi-même.
- Tes dispos manuelles par créneau (les overrides « Je peux m'arranger » / « Pas dispo finalement ») : stockées par event et par utilisateur.
Si tu cliques explicitement sur « Mon Apple Calendar (iCloud) » pour ajouter le créneau verrouillé d'un événement à ton agenda, Whenza écrit alors UN événement dans ton iCloud Calendar via CalDAV. C'est le seul cas où nous écrivons quoi que ce soit dans tes agendas, et uniquement sur ton clic explicite. Sur Google et Microsoft, Whenza reste en lecture seule.
2 bis. Visibilité entre participants d'un événement
Quand tu rejoins un événement Whenza, ton nom d'affichage (présenté sous forme d'initiales, sans photo) est visible par les autres participants du même événement, dans la liste des participants et à côté de chaque créneau candidat (libre / pris). C'est intentionnel pour la coordination en groupe.
En revanche, les autres participants ne voient jamais tes plages occupées détaillées ni les indispos individuelles : ils voient uniquement un agrégat anonymisé par créneau (« 2 / 3 libres ») et l'identité de qui est libre / pris sur ce créneau précis. Aucune information ne fuit hors d'un événement partagé.
2 ter. Comment Whenza utilise les données Google
Cette section détaille précisément l'accès, l'usage, la conservation et le partage des données obtenues via les API Google, conformément à la Google API Services User Data Policy.
- Données consultées : (a) ton adresse email, via le scope OpenID
email; (b) les plages occupées de tes calendriers — uniquement début, fin et statut libre/occupé — via le scopecalendar.readonly(Google Calendar API). Aucun autre champ n'est demandé. - Utilisation et traitement : les plages occupées sont récupérées à la demande et combinées en mémoire pour calculer les créneaux où tous les participants sont libres. Nous ne lisons jamais le titre, la description, les invités ni le lieu de tes événements.
- Finalité : l'email sert uniquement d'identifiant de compte ; les plages occupées servent uniquement au calcul de la disponibilité commune affichée dans l'événement. Aucune autre finalité.
- Conservation : l'email est stocké chiffré (AES-256-GCM) ; les plages occupées ne sont jamais conservées (calculées puis jetées) ; les tokens OAuth sont chiffrés au niveau applicatif.
- Partage : les données Google ne sont jamais vendues, partagées ou transférées à des tiers, et ne sont jamais utilisées pour entraîner des modèles d'IA ou de ML.
Limited Use : l'utilisation et le transfert par Whenza des informations reçues des API Google respectent la Google API Services User Data Policy, y compris les exigences « Limited Use ».
3. Ce que nous NE faisons PAS
- Aucune lecture des titres, descriptions, invités ou lieux de tes événements.
- Aucune persistance de tes plages occupées : elles sont récupérées à la volée à chaque calcul de créneau commun, puis jetées.
- Aucune utilisation publicitaire ou de profilage commercial.
- Aucune revente ni partage à des tiers, y compris pour entraîner des modèles d'IA.
- Aucune analyse comportementale, aucun fingerprinting.
4. Conservation des données
- Email (chiffré), nom d'affichage et tokens OAuth : conservés tant que ton compte Whenza est actif. Supprimés immédiatement si tu supprimes ton compte ou révoques l'accès côté Google / Microsoft.
- Plages occupées : jamais persistées. Calculées en mémoire puis jetées dans la milliseconde qui suit.
- Événements Whenza : tant que tu ne les supprimes pas. Supprimés en cascade si tu supprimes ton compte.
5. Stockage et sécurité
La base de données est hébergée en Europe (Frankfurt) chez Neon. Les connexions à la base utilisent TLS. L'application est hébergée sur Vercel.
Les données sensibles (tokens OAuth, mot de passe d'application Apple et les adresses email) sont chiffrées en double couche :
- Au niveau applicatif avant écriture, avec AES-256-GCM (clé dérivée d'un secret serveur stocké hors-base). Sans ce secret, les valeurs en base sont inutilisables.
- Au repos par l'hébergeur (Neon chiffre les volumes de stockage).
Les requêtes API qui modifient des données (création d'événement, jointure, écriture iCloud, etc.) sont protégées par du rate limiting par utilisateur ou par IP, afin de couper le spam et les attaques par force brute sur les codes d'invitation courts.
6. Tes droits
- Accès : tu peux voir l'ensemble des données te concernant directement dans l'app (mes événements, mes calendriers connectés).
- Portabilité : depuis tes paramètres, le bouton « Exporter mes données » (
GET /api/me/export) te renvoie un fichier JSON avec ton compte, tes calendriers connectés, tes événements et tes participations. Par cohérence avec le chiffrement, les adresses email y sont masquées. - Suppression : tu peux supprimer ton compte à tout moment depuis /settings/calendars (déconnexion d'un calendrier) ou en appelant l'endpoint
POST /api/me/deletequi efface en cascade compte, tokens, événements et participations. - Révocation côté Google : myaccount.google.com/permissions.
- Révocation côté Microsoft : account.microsoft.com/privacy/app-access.
- RGPD : tu peux exercer tes droits (accès, rectification, effacement, portabilité, opposition) en écrivant à whenzaapp@outlook.com. Tu disposes également d'un droit de réclamation auprès de la CNIL.
7. Conformité Google API Services User Data Policy
L'utilisation et le transfert d'informations reçues des API Google par Whenza respectent la Google API Services User Data Policy, y compris les exigences « Limited Use ». En particulier, les données Google reçues ne sont jamais transférées à des tiers (sauf si l'utilisateur en fait la demande explicite), ne sont jamais utilisées pour de la publicité, et ne sont jamais lues par un humain (sauf consentement explicite, debug avec données anonymisées, ou obligation légale).
8. Cookies
Whenza n'utilise qu'un cookie de session (signé via Auth.js) nécessaire au bon fonctionnement de l'authentification. Aucun cookie publicitaire ou analytique.
9. Modifications
Cette politique peut être mise à jour. La date de dernière mise à jour est indiquée en haut. Les changements significatifs te seront notifiés via l'application ou par email.