public function execute($_options = array())
 {
     try {
         $oAgenda = new GoogleAgenda($this->getConfiguration('calendarUrl'));
         // Le tableau d'options suivant contient les valeurs par défaut
         $aEvents = $oAgenda->getEvents(array('startmin' => date('Y-m-d'), 'startmax' => '', 'sortorder' => 'ascending', 'orderby' => 'starttime', 'maxresults' => '5', 'startindex' => '1', 'search' => '', 'singleevents' => 'true', 'futureevents' => 'false', 'timezone' => 'Europe/Paris', 'showdeleted' => 'false'));
         $date = date('Y-m-d H:i:s');
         $result = '';
         foreach ($aEvents as $oEvent) {
             if ($oEvent->getStartDate() < $date && $oEvent->getEndDate() > $date) {
                 $result .= $oEvent->getTitle() . ' - ';
             }
         }
         return trim($result, ' - ');
     } catch (GoogleAgendaException $e) {
         throw $e;
     }
     return false;
 }
 /**
  * {Complément Jeedom} Crée un nouvel objet GoogleAgendaEvent et l'affecte au tableau d'évènements
  * Même param et return que la class initiale
  *		- permet de gérer les StartDate et EndDate, par rapport à ce qui a été retourné par la class initiale
  */
 protected function setEvent(SimpleXMLElement $oData)
 {
     // traitement initial //
     parent::setEvent($oData);
     $nNbEvent = count($this->_aEvents);
     // actions compémentaires uniquement s'il y a des données dans le tableau //
     if ($nNbEvent > 0) {
         $oDataChild = $oData->children('http://schemas.google.com/g/2005');
         $oEvent = $this->_aEvents[$nNbEvent - 1];
         $sEventStartDate = (string) $oEvent->getStartDate();
         $sEventEndDate = (string) $oEvent->getEndDate();
         // verifie si le traitement est valide //
         if (!isset($oDataChild->when) || empty($sEventStartDate) && empty($sEventEndDate)) {
             // permet de gérer StartDate et EndDate à partir de la Description (tag <content>), si tag <when> absent du flux //
             $eventDesciption = $this->changeString($oEvent->getDescription());
             log::add('gCalendar', 'debug', '[' . $oEvent->getTitle() . '] setEvent().description:/Start/' . $eventDesciption . '/End/');
             if (!empty($eventDesciption)) {
                 // (1 journée entière, sans horaires) | Date : Lun. 26 Janv. 2015<br /> ... //
                 if (preg_match('@Date : (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4})<br@i', $eventDesciption, $resMatsh) == 1) {
                     $oEvent->setStartDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 00:00:00'));
                     $oEvent->setEndDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 23:59:59'));
                     log::add('gCalendar', 'debug', '[' . $oEvent->getTitle() . '] setEvent() (1j full) start:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 00:00:00') . ' - end:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 23:59:59'));
                 } elseif (preg_match('@Date : (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4}) (\\d{2}:\\d{2}) \\w+ (\\d{2}:\\d{2})@i', $eventDesciption, $resMatsh) == 1) {
                     $resMatsh[6] = $resMatsh[6] == '00:00' ? '23:59:59' : $resMatsh[6] . ':00';
                     $oEvent->setStartDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[5] . ':00'));
                     $oEvent->setEndDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[6]));
                     log::add('gCalendar', 'debug', '[' . $oEvent->getTitle() . '] setEvent() (1j heure) start:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[5] . ':00') . ' - end:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[6]));
                 } elseif (preg_match('@Date : (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4}) (\\d{2}:\\d{2}) \\w+ (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4}) (\\d{2}:\\d{2})@i', $eventDesciption, $resMatsh) == 1) {
                     $resMatsh[10] = $resMatsh[10] == '00:00' ? '23:59:59' : $resMatsh[10] . ':00';
                     $oEvent->setStartDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[5] . ':00'));
                     $oEvent->setEndDate(date($resMatsh[9] . '-' . $this->getMonthNumber($resMatsh[8]) . '-' . $resMatsh[7] . ' ' . $resMatsh[10]));
                     log::add('gCalendar', 'debug', '[' . $oEvent->getTitle() . '] setEvent() (xj heure) start:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' ' . $resMatsh[5] . ':00') . ' - end:' . date($resMatsh[9] . '-' . $this->getMonthNumber($resMatsh[8]) . '-' . $resMatsh[7] . ' ' . $resMatsh[10]));
                 } elseif (preg_match('@Date : (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4}) \\w+ (\\w+)[.]{0,1} (\\d{1,2}) (\\w+)[.]{0,1} (\\d{4})@i', $eventDesciption, $resMatsh) == 1) {
                     $oEvent->setStartDate(date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 00:00:00'));
                     $oEvent->setEndDate(date($resMatsh[8] . '-' . $this->getMonthNumber($resMatsh[7]) . '-' . $resMatsh[6] . ' 23:59:59'));
                     log::add('gCalendar', 'debug', '[' . $oEvent->getTitle() . '] setEvent() (xj) start:' . date($resMatsh[4] . '-' . $this->getMonthNumber($resMatsh[3]) . '-' . $resMatsh[2] . ' 00:00:00') . ' - end:' . date($resMatsh[8] . '-' . $this->getMonthNumber($resMatsh[7]) . '-' . $resMatsh[6] . ' 23:59:59'));
                 } else {
                     log::add('gCalendar', 'info', '[' . $oEvent->getTitle() . '] setEvent(): ' . __("Le champ description(content) n'est pas correctement formaté (impossible de déterminer les dates de l'événement)", __FILE__));
                 }
                 //log::add('gCalendar','debug','['.$oEvent->getTitle().'] setEvent().preg_match='.print_r($resMatsh,true));
             }
         }
         $this->_aEvents[$nNbEvent - 1] = $oEvent;
     }
 }