edulazaro/wireschedule 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

edulazaro/wireschedule

Composer 安装命令:

composer require edulazaro/wireschedule

包简介

Self-hosted meeting scheduler for Laravel (a Calendly alternative). Config-driven availability, own database, Livewire UI. Themeable through the wire* family — shares look with wiremodal, wiretoast, wirecookies and wirebug.

README 文档

README

Wireschedule

Wireschedule

Self-hosted meeting scheduler for Laravel, a lightweight on-brand alternative to Calendly. Availability is defined in config, bookings live in your own database, and the UI is a Livewire component you drop anywhere. Part of the wire* family: themeable through the shared data-wire-theme attribute, visually coherent with wiremodal, wiretoast, wirecookies and wirebug.

Requirements

  • PHP 8.2+
  • Laravel 11+
  • Livewire 3

Installation

composer require edulazaro/wireschedule
php artisan migrate

Import the CSS in your bundle:

@import '../../vendor/edulazaro/wireschedule/resources/css/wireschedule.css';

Usage

Drop the scheduler anywhere:

<x-wireschedule event="demo" />

Pick the theme once on <html> (shared with the rest of the family):

<html data-wire-theme="studio">

How it works

  • Availability is declared per event type in config/wireschedule.php: weekly recurring ranges (in the organiser's timezone), slot duration, buffer, how far ahead bookings are allowed and minimum notice.
  • Free slots are computed as that availability minus the bookings already in your wireschedule_bookings table. The visitor's browser timezone is detected and used to display and store times; everything is persisted in UTC.
  • No third party: lead data stays in your database. A unique (event_type, starts_at) index prevents double-booking, re-checked at confirm time to avoid races.

Config

php artisan vendor:publish --tag=wireschedule-config
'timezone' => 'Europe/Madrid',      // organiser timezone
'ask' => ['phone' => true, 'notes' => true],
'notify' => ['to' => null],         // organiser email notified on each booking (null = no notice)
'events' => [
    'demo' => [
        'label' => 'Demo',
        'duration' => 30, 'buffer' => 0, 'days_ahead' => 21, 'min_notice' => 120,
        'availability' => [
            1 => [['10:00','14:00'], ['16:00','18:00']],  // 1 = Monday ... 7 = Sunday
        ],
    ],
],

Reading bookings

use EduLazaro\WireSchedule\Models\Booking;

Booking::ofType('demo')->confirmed()->upcoming()->orderBy('starts_at')->get();
$booking->booker;   // polymorphic: who booked (User, ... or null for guests)

Events

  • wireschedule-booked is dispatched on the Livewire component after a successful booking (with the id), so the host app can toast or track it.

Sponsors

Wireschedule is supported by the following sponsors. Thank you for keeping it growing:

Kenodo Kenodo     AndorraDev AndorraDev

Author

Created by Edu Lazaro

License

Wireschedule is open-sourced software licensed under the MIT license.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固