wearebraid / carbon-availability
The easiest way to determine calendar availability using Carbon.
Installs: 7 773
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- nesbot/carbon: ^2.25
Requires (Dev)
- phpunit/phpunit: ^8.4
- spatie/phpunit-watcher: ^1.21
This package is auto-updated.
Last update: 2024-12-10 13:27:11 UTC
README
Given some available times and some unavailable times how do you determine what time slots you can schedule an event of a certain duration (think something like calendly)? Well – it's surprisingly hard – unless you're using this.
use Braid\CarbonAvailability; /** * [==========] | Available time blocks * [========] | * [==========] | ______________________ * [xxxxxxx] | Booked time blocks * [x] | ______________________ * [==========] [====] [=] | Merged availability * | | | | | | | | Available sessions */ $availability = [ ['2019-01-01 09:00:00', '2019-01-01 10:00:00'], ['2019-01-01 10:15:00', '2019-01-01 11:00:00'], ['2019-01-01 11:00:00', '2019-01-01 12:00:00'] ]; $booked = [ ['2019-01-01 10:45:00', '2019-01-01 11:30:00'], ['2019-01-01 11:50:00', '2019-01-01 11:55:00'] ]; $availability = new CarbonAvailability($availability, $booked); $startTimes = $availability->session('15 minutes'); /* Returns the following Carbon\Carbon date times (2019-01-01): 09:00 09:15 09:30 09:45 10:15 10:30 11:30 */
Installation
composer require wearebraid/carbon-availability