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

Product Decisions This Supports

  • Roadmap sequencing for a booking/scheduling capability. Zap provides the domain engine for availabilities, appointments, blocked time, and bookable-slot generation. It lets a PM scope an MVP around “define resource availability → expose bookable slots → create appointments” without budgeting a from-scratch recurrence engine.
  • Build vs. buy for scheduling logic. Recurrence rules, overlap detection, buffers, and slot generation are deceptively expensive to build and test. Zap’s breadth—weekly odd/even, biweekly, monthly ordinal weekdays, quarterly/annual, dynamic intervals—supports a “buy/leverage OSS, build the product experience” decision rather than an in-house build.
  • Resource-model expansion. The polymorphic HasSchedules trait supports doctors, rooms, employees, and shared spaces with one schema. A PM can sequence expansion across resource types without a new scheduling subsystem per vertical.
  • Scope boundaries. Zap is a backend scheduling/query layer, not a booking product. It does not appear to cover booking UI, notifications, payments, cancellation policies, waitlists, calendar sync, or admin tooling. These must be explicitly staffed and roadmaped.
  • Platform compatibility decision. The README states PHP ≥8.5 and Laravel ≥13.0—very restrictive, bleeding-edge requirements. This package should only enter the decision set for greenfield or explicitly upgraded applications. Verify composer.json constraints directly: release notes mention CI across PHP 8.2–8.5, which conflicts with the README’s ≥8.5 claim.
  • Data-model and migration planning. UUID/ULID support requires pre-migration changes to models, config, and migrations. This is a low-cost decision if caught early and a costly retrofit if missed.
  • Dependency and exit-risk management. MIT license, zero dependents, small maintainer footprint, and early maturity mean the PM should treat this as a tactical accelerator, not a strategic platform bet. Decide upfront whether the team will pin, wrap, or fork.
  • AI-assisted delivery productivity. Laravel Boost skills may reduce onboarding time for AI coding agents, a modest but real delivery-velocity consideration.

When to Consider This Package

Consider Zap when:

  • You are building on Laravel 13+ and PHP 8.5+, or are willing to verify and support that stack.
  • The product needs resource-based availability and appointment booking: healthcare resources, meeting rooms, employee shifts, or shared-space reservations.
  • You need recurring schedule patterns and slot generation but do not want to build that logic in-house.
  • Your team can own the surrounding product surface: booking UX, notifications, timezone presentation, payments, and admin tools.
  • You are comfortable with a young, single-maintainer OSS package and can pin versions, add integration tests, and maintain a fork/exit plan.
  • You want a fast, time-boxed spike to validate scheduling assumptions before committing roadmap.

Look elsewhere when:

  • Your application is on Laravel 12 or earlier / PHP 8.4 or earlier—the stated requirements are likely a hard blocker.
  • You need a ready-made booking UI, admin calendar, or customer-facing scheduler; Zap is not that product.
  • You require iCal, Google Calendar, or Outlook synchronization, enterprise support, SLA, or security certifications. The README mentions healthcare use cases, but there is no evidence of HIPAA/BAA readiness.
  • Timezone/DST correctness across global users is a core requirement; the package documentation does not demonstrate this depth.
  • You need concurrency-safe double-booking prevention under load as a guaranteed property; validate this explicitly rather than assuming it.
  • You need cron-style background job scheduling; use Laravel’s native scheduler instead.
  • You need a mature ecosystem with broad adoption; zero dependents and limited community signals are a poor fit for a low-risk, long-lived platform dependency.

How to Pitch It (Stakeholders)

For executives: Zap is an MIT-licensed Laravel scheduling engine that could accelerate a booking feature by removing the need to build recurring availability, overlap detection, and slot generation from scratch. The trade-off is maturity and platform lock-in: it targets very new PHP/Laravel versions, has a small maintainer base, and does not include the customer-facing booking experience. Recommendation: fund a short, time-boxed spike against our real use cases, not a full production commitment. Success should be measured by whether it handles our recurrence, buffer, and conflict scenarios without custom forks.

For engineering: The builder API is clean and the recurrence coverage is unusually broad, including odd/even weeks, ordinal weekdays, and dynamic intervals. It includes conflict detection, bookable-slot queries, metadata, custom validation rules, and multi-database CI signals. Key risks: restrictive PHP/Laravel requirements, documentation inconsistency around supported PHP versions, UUID migration friction, no timezone/calendar-sync story, and a single-maintainer bus factor. Mitigation: verify composer.json, wrap the package behind an internal scheduling interface, add integration tests for our scenarios, and keep a fork path open.

Ask: One to two sprint spike to validate fit on our target stack and top booking scenarios. Decision rule: proceed only if we are on Laravel 13/PHP 8.5, booking is a near-term roadmap priority, and the spike proves our recurrence and conflict cases with acceptable operational risk.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log