diff options
Diffstat (limited to 'vendor/sabre/vobject/lib/Sabre/VObject/Component/VFreeBusy.php')
-rw-r--r-- | vendor/sabre/vobject/lib/Sabre/VObject/Component/VFreeBusy.php | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/vendor/sabre/vobject/lib/Sabre/VObject/Component/VFreeBusy.php b/vendor/sabre/vobject/lib/Sabre/VObject/Component/VFreeBusy.php deleted file mode 100644 index 7afe9fdb3..000000000 --- a/vendor/sabre/vobject/lib/Sabre/VObject/Component/VFreeBusy.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php - -namespace Sabre\VObject\Component; - -use Sabre\VObject; - -/** - * The VFreeBusy component - * - * This component adds functionality to a component, specific for VFREEBUSY - * components. - * - * @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/). - * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License - */ -class VFreeBusy extends VObject\Component { - - /** - * Checks based on the contained FREEBUSY information, if a timeslot is - * available. - * - * @param DateTime $start - * @param Datetime $end - * @return bool - */ - public function isFree(\DateTime $start, \Datetime $end) { - - foreach($this->select('FREEBUSY') as $freebusy) { - - // We are only interested in FBTYPE=BUSY (the default), - // FBTYPE=BUSY-TENTATIVE or FBTYPE=BUSY-UNAVAILABLE. - if (isset($freebusy['FBTYPE']) && strtoupper(substr((string)$freebusy['FBTYPE'],0,4))!=='BUSY') { - continue; - } - - // The freebusy component can hold more than 1 value, separated by - // commas. - $periods = explode(',', (string)$freebusy); - - foreach($periods as $period) { - // Every period is formatted as [start]/[end]. The start is an - // absolute UTC time, the end may be an absolute UTC time, or - // duration (relative) value. - list($busyStart, $busyEnd) = explode('/', $period); - - $busyStart = VObject\DateTimeParser::parse($busyStart); - $busyEnd = VObject\DateTimeParser::parse($busyEnd); - if ($busyEnd instanceof \DateInterval) { - $tmp = clone $busyStart; - $tmp->add($busyEnd); - $busyEnd = $tmp; - } - - if($start < $busyEnd && $end > $busyStart) { - return false; - } - - } - - } - - return true; - - } - -} - |