Skip to Content
ODOO 20 NATIVE • ZERO SAAS TAX • GOOGLE CALENDAR OAUTH2 • DYNAMIC PYTZ SLOT ENGINE • CRM & ICS ORCHESTRATION

CoquiCal Appointment Engine

The Sovereign, Cal.com-Grade Appointment & Executive Meeting Orchestration Suite Engineered Natively Inside Odoo 20 Community & Enterprise.

Eliminate per-seat Calendly and Cal.com SaaS subscriptions forever. CoquiCal (odoo_appointment_scheduler_coquicloud) delivers sub-second timezone-aware slot computation, bidirectional Google Calendar OAuth2 Free/Busy conflict detection, automatic crm.lead & calendar.event creation, RFC 5545 .ics invitations, cryptographic self-service reschedule/cancel tokens, and headless iframe embeds.

$0/mo
Per-Seat SaaS Tax
<40ms
Dynamic Slot Matrix Query
2-Way
Google & Odoo Calendar Sync
400+
IANA Timezones Supported
100%
CRM Lead Auto-Attribution
UUIDv4
Zero-Login Reschedule Tokens
Sovereign Scheduling Infrastructure

Why Pay Per-Seat SaaS Rent When Your ERP Owns the Ledger?

External scheduling platforms fracture your prospect telemetry across third-party webhooks, fragile Zapier bridges, and per-user monthly fees. CoquiCal brings the entire Cal.com experience natively into Odoo 20.

When an enterprise prospect books an architecture audit or discovery call through an external tool like Calendly, your CRM loses immediate transactional context. If a webhook drops, the meeting never reaches your sales pipeline, and rescheduling creates duplicate records. CoquiCal (odoo_appointment_scheduler_coquicloud) eliminates the middleman by executing inside the exact same PostgreSQL transaction as your Contacts, CRM, and Calendar.

Designed as a standalone, white-label commercial addon ready for multi-tenant deployment or resale, CoquiCal provides a sleek dark-mode public booking portal (/book & /bookramon), multi-host availability rules with per-day split shifts, before/after buffer padding, minimum notice guardrails, daily booking caps, custom intake questionnaires, and instant RFC 5545 .ics calendar attachments.

LIVE PRODUCTION MODULE

odoo_appointment_scheduler_coquicloud

  • Host Profile Engine: coqui.appointment.host
  • Event Type Matrix: coqui.appointment.type
  • Weekly Shift Rules: coqui.appointment.availability
  • Custom Intake Fields: coqui.appointment.question
  • Booking State Machine: coqui.appointment.booking
  • Live Event Slugs: 15-min-intro, 30-min-discovery, architecture-audit, vip-pair-programming
Test Live Booking Engine (/book)
Deterministic Timezone Math • Zero Double-Bookings • Native ORM Hooks

Six Core Engines Powering CoquiCal

Every layer of CoquiCal is architected to handle complex cross-timezone executive scheduling without external JavaScript dependencies or leaky third-party databases.

ENGINE 01

Dynamic pytz Slot Matrix

Method: get_available_slots_for_date()

  • Browser Timezone Auto-Detection: Detects visitor IANA timezone via Intl.DateTimeFormat() and translates host availability windows into localized visitor slots on the fly.
  • Buffer & Notice Guardrails: Enforces configurable buffer_before, buffer_after, min_notice_hours, and max_days_ahead rolling horizons.
  • Daily Capacity Circuit Breaker: Automatically locks dates once max_bookings_per_day is reached to protect deep-work engineering blocks.
ENGINE 02

Dual-Layer Conflict Detection

Sources: Odoo calendar.event + Google OAuth2

  • Native Odoo Calendar Queries: Cross-checks internal calendar.event records and confirmed coqui.appointment.booking slots in a single indexed SQL query.
  • Google Calendar FreeBusy API: Optional per-host Google OAuth2 refresh-token integration queries real-time external busy blocks before rendering slots.
  • 2-Way Event Push: Automatically creates or updates external Google Calendar events with Google Meet / Jitsi / Zoom video conference links upon confirmation.
ENGINE 03

CRM, Partner & ICS Automation

Orchestration: res.partner, crm.lead, mail.mail

  • Deterministic Contact Resolution: Deduplicates attendees by normalized email, enriching existing res.partner records with phone, company, and timezone metadata.
  • Automatic CRM Opportunity Spawning: Enabled per event type (create_crm_lead = True) to inject qualified discovery calls and architecture audits directly into the sales pipeline.
  • RFC 5545 .ics Generator: Dynamically synthesizes standards-compliant iCalendar payloads with VALARM reminders and 1-click Google/Outlook/Apple Calendar links.
ENGINE 04

Cryptographic Token Self-Service

Routes: /book/manage/, /reschedule, /cancel

  • Zero-Password Attendee Portal: Every booking mints a high-entropy UUIDv4 access_token allowing guests to view, reschedule, or cancel meetings without needing an Odoo portal login.
  • Atomic Rescheduling: Selecting a new time slot updates the underlying calendar.event, logs the audit trail in the chatter, and dispatches updated .ics invites automatically.
  • Cancellation Reason Telemetry: Captures structured cancellation reasons and immediately releases the time slot back into the public availability pool.
ENGINE 05

Dynamic Intake Questionnaires

Models: coqui.appointment.question & .answer

  • Per-Event Qualification Forms: Configure custom single-line, multi-line, dropdown, radio, or phone intake questions tailored to each meeting type.
  • Structured Answer Persistence: Guest responses are stored as relational coqui.appointment.answer records AND formatted into the linked crm.lead description.
  • Pre-Call Architecture Briefing: Ensures the host walks into every call knowing the prospect's ERP version, cloud topology, and primary bottleneck in advance.
ENGINE 06

Headless JSON API & Iframe Embeds

Query Param: ?embed=1 & /book/api/...

  • Distraction-Free Iframe Mode: Appending ?embed=1 strips the website header and footer, rendering a compact Cal.com-style widget ready to embed on external landing pages.
  • RESTful JSON Availability Endpoints: High-speed JSON endpoints (/book/api/slots and /book/api/month_availability) power instant month/day calendar switching with zero page reloads.
  • White-Label & Resellable Core: Zero hardcoded domain names or personal branding in the Python/XML source—100% driven by backend records.
Production Web Controllers

Complete CoquiCal URL & API Route Map

Every route is served directly by Odoo 20's HTTP dispatcher with CSRF protection, rate-safe validation, and responsive dark-mode QWeb templates.

Public Booking & Self-Service Routes

  • GET /book & /bookramon — Executive Host Profile & Public Event Type Selector Directory.
  • GET /book/ — Interactive Month Calendar, Timezone Switcher, Slot Picker & Intake Form.
  • POST /book//submit — Atomic booking creation, conflict re-verification, CRM lead trigger & email dispatch.
  • GET /book/confirmed/ — Booking confirmation screen with 1-click Google Calendar & .ics download buttons.
  • GET/POST /book/manage/ — Cryptographic token portal for self-service rescheduling and cancellation.

JSON Telemetry & Calendar Export Endpoints

  • GET /book/api/slots — Computes real-time available time slots for a given event_id, date, and visitor IANA tz.
  • GET /book/api/month_availability — Returns available vs. sold-out dates across an entire calendar month for instant UI rendering.
  • GET /book/ics/.ics — Streams an RFC 5545 compliant iCalendar file with timezone-accurate UTC timestamps.
  • GET /book/?embed=1 — Chromeless iframe embed mode for external marketing sites and customer portals.
  • ir.cron — Automated 24-hour and 1-hour pre-meeting email reminder daemon.

Experience CoquiCal Live or Deploy It on Your Odoo Stack

Test the live slot engine right now by booking a discovery session, or license odoo_appointment_scheduler_coquicloud for your own Odoo 20 enterprise instance.