Oke, hou je vast 
Ik heb dus een planningysteem geprogrammeerd wat werkt met events en beschikbaarheden. Een beschikbaarheid row ziet er zo uit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗
Een event row ziet er zo uit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗"afbouwUren" is de tijd die erbij word geteld, dus stel dat een event om 23:30 is afgelopen en er is een afbouwtijd van 60 minuten, dan is het eigenlijk de volgende dag om 0:30 afgelopen. Hetzelfde verhaaltje bij opbouwUren 
Een gebruiker kan zichzelf op deze manier beschikbaar stellen:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗
Het is voor de gebruiker dus niet mogelijk om zichzelf in één keer voor meerdere dagen in te plannen.
Om het nog even wat lastiger te maken zijn er voor ieder event ook nog teams: opbouwteam, eventteam, afbouwteam.
Een gebruiker kan ingepland worden in zon team als hij/zij beschikbaar is tijdens de tijden van het team. Dit wordt nu zo bepaald:
foreach($select as $av) {
if($availability->begin <= $eventBegin && $availability->end >= $eventEnd) {
Wat is er nou mis?
Stel dat een event begint om 13:00 uur s middags en is afgelopen om 23:30 uur. Daarna komt er nog een afbouwtijd van 60 minuten bij. De begintijd van het afbouwteam is dan 23:30 en de eindtijd is dan 00:30 de volgende dag.
Een gebruiker kan dan niet ingepland worden omdat er per beschikbaarheid-row wordt gekeken of dat de gebruiker binnen de tijd van het team beschikbaar is.
Ik heb al gedacht om de datums aan elkaar te lijmen, maar heb geen idee hoe ik dit moet doen.
Ik heb mijn best gedaan om het zo duidelijk mogelijk uit te leggen, maar ik kan me voorstellen dat je met vragen zit. Stel deze dan

Ik heb dus een planningysteem geprogrammeerd wat werkt met events en beschikbaarheden. Een beschikbaarheid row ziet er zo uit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗Een event row ziet er zo uit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗
Een gebruiker kan zichzelf op deze manier beschikbaar stellen:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (image.prntscr.com).Bron openen ↗Het is voor de gebruiker dus niet mogelijk om zichzelf in één keer voor meerdere dagen in te plannen.
Om het nog even wat lastiger te maken zijn er voor ieder event ook nog teams: opbouwteam, eventteam, afbouwteam.
Een gebruiker kan ingepland worden in zon team als hij/zij beschikbaar is tijdens de tijden van het team. Dit wordt nu zo bepaald:
foreach($select as $av) {
if($availability->begin <= $eventBegin && $availability->end >= $eventEnd) {
Wat is er nou mis?
Stel dat een event begint om 13:00 uur s middags en is afgelopen om 23:30 uur. Daarna komt er nog een afbouwtijd van 60 minuten bij. De begintijd van het afbouwteam is dan 23:30 en de eindtijd is dan 00:30 de volgende dag.
Een gebruiker kan dan niet ingepland worden omdat er per beschikbaarheid-row wordt gekeken of dat de gebruiker binnen de tijd van het team beschikbaar is.
Ik heb al gedacht om de datums aan elkaar te lijmen, maar heb geen idee hoe ik dit moet doen.
Ik heb mijn best gedaan om het zo duidelijk mogelijk uit te leggen, maar ik kan me voorstellen dat je met vragen zit. Stel deze dan

Maar het probleem is dat een gebruiker per dag zijn/haar beschikbaarheid moet inplannen. Dat kan ik niet veranderen omdat de UI zo is.