Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Zap Laravel Package

laraveljutsu/zap

Zap is a calendar and scheduling package for Laravel. Define availabilities, appointments, blocked times, and custom schedules for any resource like doctors, rooms, or employees. Handles overlaps, recurrence patterns, and availability queries. PHP 8.5+ and Laravel 13+.

View on GitHub
Deep Wiki
Context7

A flexible, performant, and developer-friendly schedule management system for Laravel

Frequently asked questions about Zap
How do I install Zap in a Laravel application?
Install Zap with composer require laraveljutsu/zap, then publish its assets and configuration for the Zap service provider. After publishing, run php artisan migrate to create the schedules and schedule_periods tables. Zap requires PHP 8.5 or newer and Laravel 13 or newer.
What Laravel and PHP versions are required by Zap?
Zap requires PHP 8.5 or newer and Laravel 13.0 or newer. It is designed as a Laravel-native package using Eloquent, the query builder, and Laravel's database layer. If you are on an older Laravel or PHP version, you should not expect compatibility.
How do I make an existing model schedulable with Zap?
Add the HasSchedules trait to any Eloquent model that represents a bookable resource, such as Doctor, Room, or Employee. The trait lets Zap attach availabilities, appointments, blocked times, and custom schedules to that model. No major framework conflicts are expected because Zap builds on Eloquent and Laravel's query builder.
Can Zap prevent overlapping appointments or double bookings?
Zap includes built-in conflict detection, including Zap::findConflicts() and validation rules such as noOverlap() and maxDuration(). These features help you detect overlapping bookings when creating or validating schedules. Zap provides detection but not resolution logic, so priority rules, user notifications, and locking must be implemented in your application.
Does Zap support recurring schedules like bi-weekly or the third Friday of each month?
Yes, Zap has a recurrence engine that supports patterns such as ordinal weekdays, bi-weekly, and monthly schedules. This reduces boilerplate for periodic scheduling logic. Very complex recurrence rules can stress the database at query time, so benchmark and index appropriately.
Does Zap work with UUID or ULID primary keys?
Zap supports integer or UUID/ULID primary keys through configuration, but non-integer keys require planning before migration. You may need custom model extensions and migration adjustments for foreign key types and uuidMorphs(). Read the custom model support documentation before running migrations if your app uses UUIDs or ULIDs.
How do I check availability and get bookable slots with Zap?
Zap provides fluent query methods such as isBookableAt() and getBookableSlots() for checking availability. getBookableSlots() returns raw Carbon objects, so your frontend or API layer may need formatting and timezone handling. For large date ranges or high-cardinality queries, consider caching or pagination.
Is Zap suitable for doctor appointments, room booking, and employee shifts?
Zap is built for scheduling-centric applications and supports availabilities, appointments, blocked times, and custom schedules for any resource. Common use cases include healthcare resources, employee shifts, and shared space booking. Arbitrary metadata on schedules and appointments also supports patient records or event details.
What performance risks should I consider before using Zap in production?
Complex recurrence generation and dynamic slot calculation can be slow for large date ranges or high-cardinality queries. Mitigate this with indexes on schedulable_id and date, caching strategies such as Redis, and pagination. Zap does not include locking mechanisms, so you must handle race conditions when creating or appending schedules.
Does Zap include AI agent support or Laravel Boost integration?
Zap offers optional Laravel Boost integration with skills that let AI agents interact with its scheduling API. This is optional, but it adds a dependency if you use AI tooling. Core scheduling features do not require Laravel Boost.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode