Cally
ViewA scheduling platform for sharing availability, accepting bookings, and keeping meetings in sync with real calendars.
Scheduling without the back-and-forth
I built Cally, a scheduling platform designed to make booking meetings simple for both hosts and guests. Instead of exchanging messages to find a convenient time, hosts can configure their availability, create different meeting types, connect their calendars, and share a public booking page where anyone can schedule a meeting without creating an account.
Cally supports individual, collective, and round-robin scheduling, making it suitable for personal meetings and team-based workflows. Hosts can customize meeting durations, configure weekly availability, set date-specific overrides, and control how and when people can book their time.
Availability that works around your calendar
One of the main challenges was building a scheduling system that accurately determines when a host is available. Cally combines weekly availability rules, timezone-aware scheduling, custom overrides, and connected Google Calendar events to calculate bookable time slots.
Before confirming a booking, the backend validates availability again and uses locking to prevent overlapping reservations. This ensures that two guests cannot book the same slot simultaneously, even when requests arrive at nearly the same time.
Once a booking is confirmed, Cally creates the corresponding Google Calendar event, generates a Google Meet link, and sends confirmation emails containing the meeting details.

More than one way to schedule
Beyond standard one-on-one meetings, I implemented scheduling workflows for teams and recurring meetings.
Collective scheduling considers multiple participants when determining availability, while round-robin scheduling distributes meetings across eligible hosts. These workflows allow teams to coordinate meetings without manually managing each participant's calendar.
Recurring meetings support daily, weekly, and monthly schedules, configurable intervals, selected weekdays, end dates, and occurrence limits. Hosts can manage an entire meeting series, update participants, and regenerate future occurrences when the schedule changes.
I also built rescheduling and cancellation workflows, allowing meeting changes to be handled without starting a new booking process. Guests can respond to reschedule requests, while hosts can manage booking changes from their dashboard.
Contacts, teams, and notifications
I wanted Cally to be more than a public booking link, so I built supporting tools for managing the relationships and activity around meetings.
The contacts system allows users to maintain guest information, import contacts through CSV files, and manage large contact lists. Imports are processed in background jobs, with progress tracking and failure handling to keep the interface responsive.
The platform also supports teams, event participants, and notification workflows. Real-time notifications keep users informed about relevant booking activity, while automated emails handle meeting invitations, confirmations, rescheduling, and other scheduling events.

Building the system behind the interface
I developed Cally with Laravel, PostgreSQL, Redis, and React, focusing on separating user-facing interactions from the background processes required to manage meetings reliably.
The backend handles availability calculations, booking validation, calendar synchronization, recurring meeting generation, and notification delivery. Redis-backed queues process tasks such as sending emails, creating Google Meet events, importing contacts, and generating recurring bookings without blocking API requests.
I also implemented Google OAuth for connecting calendars, private real-time notification channels using Laravel Reverb, and background processing for workflows that involve external services.
For deployment, I used Brimble for the backend and Aiven PostgreSQL for the database, with Redis supporting queues and caching. I also migrated the database infrastructure during development to improve operational reliability.
What I built
I designed and developed Cally end to end, from the database architecture and backend APIs to the responsive product interface and public booking experience.
The work covered authentication, user profiles, event configuration, availability management, timezone handling, Google Calendar integration, Google Meet generation, meeting recurrence, team scheduling, contact management, CSV imports, rescheduling, email notifications, real-time updates, and production deployment.
Cally gave me the opportunity to solve problems beyond interface development, particularly around concurrent bookings, background job processing, external API integrations, and keeping multiple scheduling workflows consistent.
The result is a scheduling product that brings availability, bookings, calendar integrations, and meeting management together in one place.
