PROJET

Calendr — la réservation marque blanche bien plus qu'un Calendly

Multi-organisation · Équipe + ressources + roulements + CRM · Next.js 15 · Supabase schéma isolé · FullCalendar 6 plugins · MCP custom

Calendr — la réservation marque blanche bien plus qu'un Calendly

Calendr est une plateforme de réservation et de planning professionnel en marque blanche, multi-organisation. Bien plus qu'un Calendly : équipe, ressources, roulements, CRM contacts intégrés, en natif.

Statut actuel : en construction. L'infrastructure (schéma Supabase, multi-organisation, OAuth, FullCalendar) est prête en production sur l'infra Quatools, mais le produit complet n'est pas encore livré ni exploité commercialement. Module en finition.

Stack : Next.js 15 (App Router, Server Actions) · React 18 · TypeScript 5 · Supabase (schéma calendrier isolé) · FullCalendar 6 (6 plugins resources) · TanStack Query · Zustand · Anthropic SDK + assistant IA · MCP server custom.

Pourquoi Calendr existe

Calendly et Cal.com couvrent la prise de rendez-vous simple (1-1). Aucun n'adresse le planning professionnel complet dont ont besoin les structures sportives, médicales, formation ou conseil :

  • Équipe avec rôles et priorités — pas un seul agenda à publier, un pool de personnes assignables
  • Ressources (salles, terrains, équipements, véhicules) avec horaires d'ouverture et capacité — un RDV doit booker une personne ET un lieu
  • Roulements automatiques — qui est de garde / d'astreinte cette semaine
  • CRM contacts intégré — un client qui réserve n'est pas un email perdu, c'est un prospect qui rentre dans le pipeline
  • Stratégies de remplissage configurables — « premier disponible », priorités par membre, limites par event, équilibrage de charge

Aujourd'hui les clubs et structures jonglent avec Calendly + Excel + Slack + tableur partagé + agenda perso = chaos. Calendr regroupe le tout dans une plateforme marque blanche, intégrable au site du client, brique de l'ERP Quatools.

Au passage, c'est la brique de réservation que j'utilise pour mes propres briques — EPHI-SPORTS pour la prise de RDV athlète/coach, Sport Manager pour les créneaux club, Factur-IA pour les devis avec rendez-vous : je ne loue pas mes briques cœur, je les construis et je les connecte.

Le défi : couvrir tout le spectre planning pro sans devenir une usine à gaz

Le piège évident d'un produit « comme Calendly mais en mieux » : empiler les features et perdre la simplicité d'usage. La discipline ici a été de garder une seule UI cohérente capable de naviguer entre vue perso, vue équipe et vue ressources, avec un toggle simple, en s'appuyant sur la profondeur de FullCalendar plutôt que d'inventer un calendrier maison.

Trois axes structurants :

  1. Stratégies de remplissage par event-type — chaque type d'événement choisit son mode : fixed (membre dédié) ou flexible (pool de membres avec priorités et limites). Quand un client réserve, l'algorithme dispatch automatiquement vers le bon membre selon les disponibilités et la stratégie.
  2. Roulements (duty rosters) — patterns alternance semaine, jour, demi-journée, manuel ou self-service. Génération automatique des créneaux sur 4 semaines, modification visuelle, échanges entre membres.
  3. Calcul de disponibilités multi-contraintes — un créneau doit satisfaire (1) horaires de base du membre, (2) assignations fixes existantes, (3) limites par event, (4) réservations existantes, (5) horaires d'ouverture de la ressource liée. Logique centrale partagée entre l'API et l'UI.

Architecture Calendr et cohabitation multi-app Quatools

Pattern infrastructure pro : un seul projet Supabase héberge public (Sport Manager) ET calendrier (Calendr) avec isolation totale par schéma. Le code utilise systématiquement .schema("calendrier") pour ne jamais polluer l'autre app. Économie d'infra + cohérence multi-app Quatools.

Tables principales du schéma calendrier : organizations, users, organization_members (avec rôles), event_types, bookings, contacts (CRM), resources, availability_schedules, calendars, custom_questions, plannings, duty_rosters.

Pages livrées (App Router) :

  • Public : /book/[slug] (booking multi-membres avec choix client ou premier dispo)
  • Dashboard : /team, /event-types, /bookings, /planning (vue équipe), /contacts (CRM), /resources, /availability, /organization, /settings, /profile, /assistant (chat IA)
  • Onboarding : /invite/[token] pour inviter des membres dans une organisation

Stack secondaire : date-fns + date-fns-tz (gestion timezones, point critique pour un calendrier en prod), React Hook Form + Zod, Radix UI + shadcn, MCP server custom pour pilotage agent.

Preuves et état Calendr

  • Schéma calendrier déployé sur l'infra Supabase Quatools (cohabitation propre avec Sport Manager, isolation par schéma)
  • Architecture multi-organisation native prête pour ouverture externe
  • Demande remontée des clubs Sport Manager — pas un projet imaginé, un besoin client validé en amont
  • Statut actuel : produit en construction — l'infra technique est posée, le produit complet et l'UX clients ne sont pas encore terminés. Pas encore d'usage externe commercial.
  • Roadmap active : sync Google Calendar / Outlook bidirectionnelle, page "Mon planning" membre avec stats perso, modal création roulement avec preview 4 semaines
  • Potentiel SaaS direct à terme : concurrent ouvert face à Calendly / Cal.com / SmartAgenda, avec un avantage produit (équipe + ressources + roulements en natif)