Laravel Zap logo
Power your booking experience

Launch a booking calendar your users trust from day one.

From availability to appointments, Laravel Zap helps you ship a smooth scheduling flow with less custom code and fewer surprises.

Open source, Laravel-native, and ready for products where booking quality drives growth.

Fast & Flexible Recurring Events Laravel Native
Go live faster

From install to your first bookable calendar in minutes.

Add scheduling to your existing Laravel models without rebuilding your product architecture.
  1. 1

    Set up the schema

    php artisan vendor:publish --tag="zap-migrations"

  2. 2

    Apply and launch

    php artisan migrate

  3. 3

    Activate scheduling

    use HasSchedules

composer
composer require laraveljutsu/zap
Why teams choose Laravel Zap

Everything you need to run a premium booking calendar.

Keep your scheduling logic in one reliable engine and deliver a smoother booking experience.
Availability that converts
Turn working hours, blocked periods, and appointments into clear bookable slots your users can trust.
Conflict-free by default
Set overlap rules once and let Zap protect your calendar from double-bookings.
Flexible slot strategy
Tailor durations, buffers, and filters to match how your business actually schedules.
Proven in real products

One booking engine for every scheduling use case.

Use the same calendar foundation across healthcare, teams, and operations.

Doctor appointments

Fill calendars, not admin queues
Keep practitioner calendars accurate and show patients only slots they can actually book.

Meeting rooms

Reliable room utilization
Coordinate shared spaces with confidence and eliminate scheduling collisions.

Shift management

Clear shift coverage
Plan rotations and time off once, then instantly check who is available.
Developer-friendly API

Ship calendar features, not calendar headaches.

Connect schedules to your models and return accurate availability fast.

Zap gives you a clean, fluent API to enable booking on any model: define availability, add recurring rules, and return bookable slots.

Zap handles time logic so your team can focus on UX and growth.

quick-start.php
use Zap\Facades\Zap;

Zap::for($doctor)
    ->named('Office Hours')
    ->availability()
    ->forYear(2025)
    ->addPeriod('09:00', '12:00')
    ->addPeriod('14:00', '17:00')
    ->weekly(['monday', 'tuesday', 'wednesday', 'thursday', 'friday'])
    ->save();

// Get bookable slots
$slots = $doctor->getBookableSlots('2025-01-15', 60, 15);

// Check if a specific time range is bookable
$isAvailable = $doctor->isBookableAtTime('2025-01-15', '15:00', '16:00');

Ready to ship your booking calendar?

Install Laravel Zap today and go from zero to a bookable calendar in minutes — no scheduling infrastructure to build from scratch.