Akia Consulting Akia Consulting
SR
RITMO / SCHEDULING & BOOKING

Find your rhythm. Get booked.

Ritmo is a scheduling and booking platform built for consultants, service providers, and small teams who want a branded, self-controlled booking experience instead of a third-party widget bolted onto their site. A lead gets a link, picks a time that's actually free on your calendar, and it's confirmed on both sides - no email back-and-forth required.

The litmus
test

While you're not watching, Ritmo turns a cold lead into a confirmed meeting on your calendar - zero messages exchanged.

A · SETUP
B · AVAILABILITY & BOOKING
C · CALENDAR & PAYMENTS
D · COMMUNICATION
A

Setup

Self-service sign-up, sign-in, password recovery, and email verification. Workspaces support multiple members with role-based invitations, so one business can run several booking calendars or brands from a single account. Accent color, logo, and profile image are all yours to set.

In place when

A new team member is invited to the workspace, signs in, and sees the right calendars and branding without you touching a single setting on their behalf.

B

Availability & Booking

Any number of event types per workspace, each with its own duration, price, buffer time, and booking window. The public link needs no login - time zones are detected and converted automatically, custom questions can be collected up front, and every invitee gets a secure self-serve link to reschedule or cancel.

In place when

A lead in a different time zone opens your link and sees your real open slots already converted to her local time, with no math on either side.

C

Calendar & Payments

Two-way Google Calendar sync: Ritmo checks real free/busy status before offering a slot publicly, then creates the event on confirmation, with reschedules and cancellations syncing back automatically. Stripe Checkout handles paid event types, with payment status confirmed by webhook and automatic refunds on cancellation - currently running in test mode only.

In place when

A slot that's already booked on your Google Calendar never shows as available publicly - no double-booking, no manual cross-checking.

D

Communication

Transactional email fires automatically at every step for both organizer and invitee - confirmation, reschedule, cancellation, password reset, workspace invitation - each sent in whichever language was active at that moment. A full English / Serbian Latin toggle covers the dashboard, every public booking page, and every email.

In place when

A Serbian-speaking lead books through the same link an English-speaking one uses, and every email either of them receives is already in their language.

THE MECHANISM Ritmo

How a link turns into a confirmed meeting

FIG. 1 BOOKING FLOW
LEAD ACTION OPENS LINK RITMO CHECKS SLOT VS. GOOGLE CALENDAR FREE/BUSY BOOKING CONFIRMED CALENDAR EVENT CREATED BOTH SIDES EMAILED CONFIRMATION, EN OR SR LOCALE DETECTED
Lead sideopens link, sees real slots
Live checkagainst Google Calendar
Confirmedslot locked in
Both sides notifiedcalendar + email, EN/SR
HOW YOU'LL KNOW IT'S WORKING

Three things you'll notice, not measure

01

Your lead books without asking you anything

No "does Thursday work?" No counter-offer. They open the link, pick a slot that's actually free, and it's on both calendars before you've seen the notification.

02

You stop doing time zone math

Whatever city they're in, the times they see are already converted. Nobody shows up at the wrong hour because nobody had to guess whose "2pm" was meant.

03

Cancellations and reschedules just... resolve

A lead moves the call herself from her confirmation email. Your calendar updates. If it was paid, the refund fires automatically. You never touch a keyboard.

FOR TECHNICAL READERS

Six pieces of the stack underneath

Next.js 16

Server-rendered app

React 19, TypeScript, API routes - no static/edge hosting, needs a persistent server.

PostgreSQL 18

Row-level isolation

Enforced at the database level - one client's data is unreachable from another's.

Google Calendar API

Two-way sync

Free/busy checked before offering a slot, events created and updated both directions.

Stripe

Checkout + webhooks

Payment status confirmed server-side, not just a browser redirect.

Resend

Transactional email

Every step, both sides, sent in whichever language - English or Serbian Latin - was active.

Luxon

Time-zone-safe scheduling

Every slot shown is converted correctly, so nobody does the math by hand.

Stop losing leads to the back-and-forth

Give leads a link, not an inbox thread. One dedicated instance for your business, in English and Serbian. Book an audit to see if it fits your booking flow.

Book an Audit