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.
While you're not watching, Ritmo turns a cold lead into a confirmed meeting on your calendar - zero messages exchanged.
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.
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.
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.
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.
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.
A slot that's already booked on your Google Calendar never shows as available publicly - no double-booking, no manual cross-checking.
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.
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.
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.
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.
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.
React 19, TypeScript, API routes - no static/edge hosting, needs a persistent server.
Enforced at the database level - one client's data is unreachable from another's.
Free/busy checked before offering a slot, events created and updated both directions.
Payment status confirmed server-side, not just a browser redirect.
Every step, both sides, sent in whichever language - English or Serbian Latin - was active.
Every slot shown is converted correctly, so nobody does the math by hand.
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.