Getting Started
Introduction
What is Zap and how it works.
Introduction
🎯 What is Zap?
A comprehensive calendar and scheduling system for Laravel. Manage availabilities, appointments, blocked times, and custom schedules for any resource—doctors, meeting rooms, employees, and more.
Perfect for: appointment booking systems • resource scheduling • shift management • calendar applications
🧩 Core concepts
Zap is built around four schedule types. Each schedule has one or more periods (time slots). Recurrence (daily, weekly, monthly, ordinal weekday, etc.) defines when the schedule repeats. Bookable slots are computed from availability minus appointments and blocked times.
| Type | Purpose | Overlap Behavior |
|---|---|---|
| Availability | When a resource can be booked | ✅ Allows overlaps |
| Appointment | Bookings / scheduled events | ❌ Exclusive |
| Blocked | When booking is forbidden | ❌ Exclusive |
| Custom | Your rules (overlap, etc.) | ⚙️ You define the rules |
How it fits together
- Availability defines when a resource can be booked.
- Appointments and blocked periods mark when it cannot be booked (exclusive — no overlaps allowed).
- To get bookable slots for a date, Zap uses availability and subtracts appointments and blocked times (see Query & Check).
- Schedules can be one-off (single date) or recurring (daily, weekly, monthly, first/last weekday of month, etc.). All recurrence is covered in Schedule patterns.
