edulazaro/wireschedule
Self-hosted Calendly alternative for Laravel: define availability per event in config, let visitors book free slots via a drop-in Livewire component, and keep bookings in your own database. Themeable, no third-party services.
schedules, time_slots), reducing schema conflicts but requiring explicit namespace handling in migrations/seeds.wire* packages (e.g., wiremodal) ensure visual cohesion with existing Laravel/Livewire apps, though theming may require CSS overrides for edge cases.| Risk Area | Severity | Mitigation |
|---|---|---|
| Livewire Component Conflicts | High | Audit existing Livewire components for naming collisions; use unique prefixes. |
| Database Schema Conflicts | Medium | Review wireschedule migrations; consider a shared schema namespace. |
| Theming Inconsistencies | Low | Test UI rendering early; override CSS via Laravel Mix or Tailwind. |
| Performance (High Traffic) | Medium | Benchmark slot-generation logic; consider caching availability rules. |
| Third-Party Auth Integration | Medium | Abstract auth logic via Laravel’s Authenticatable contract if needed. |
tenant_id column may need manual addition.composer require edulazaro/wireschedule
php artisan vendor:publish --tag=wireschedule-config
php artisan vendor:publish --tag=wireschedule-migrations
php artisan migrate
config/wireschedule.php (e.g., business hours, lead time).<x-wireschedule::calendar />
wireschedule:fields Artisan command.ScheduleCreated events for webhooks/emails.wiremodal or injecting custom CSS via Laravel Mix.ScheduleRequest for custom validation rules..env).wire:model or wire:click in host app.wire* package versions conflict.wire:key collisions or JS errors.wirebug (from the same author) for Livewire state inspection.APP_DEBUG=true) for stack traces.schedules table on user_id, date, and status.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Livewire Component Crash | UI broken for users | Implement global error boundaries; log to Sentry. |
| Database Lock Contention | Slot booking failures | Use database transactions with retry logic. |
| Queue Worker Failures | Missed notifications | Set up dead-letter queues; monitor failed_jobs table. |
| Auth System Downtime | Unauthorized access | Fallback to IP-based whitelisting for critical paths. |
| CSS/JS Asset Loading Issues | Broken UI | Use Laravel Mix source maps; test in incognito mode. |
wire* packages).wirebug and Livewire logs.How can I help you explore Laravel packages today?