Laravel Zap logo
Guides

Query & Check

How to check availability and retrieve schedules.

Query & Check

Check Availability

isAvailableAt() is deprecated in favor of isBookableAt(), isBookableAtTime(), and getBookableSlots(). Use the bookable APIs for all new code.
// Check if there is at least one bookable slot on the day
$isBookable = $doctor->isBookableAt('2025-01-15', 60);

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

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

// Find conflicts
$conflicts = Zap::findConflicts($schedule);
$hasConflicts = Zap::hasConflicts($schedule);

Retrieve Schedules

// Query schedules
$doctor->schedulesForDate('2025-01-15')->get();
$doctor->schedulesForDateRange('2025-01-01', '2025-01-31')->get();

// Filter by type
$doctor->appointmentSchedules()->get();
$doctor->availabilitySchedules()->get();
$doctor->blockedSchedules()->get();

Inspect Schedule

// Check schedule type
$schedule->isAvailability();
$schedule->isAppointment();
$schedule->isBlocked();