/**
  * GoogleCalendar::getEvents()
  *
  * @param Zend_Gdata_Calendar_EventQuery $query       カスタムクエリ
  * @param int                            $start_date  取得範囲の開始日付
  * @param int                            $end_date    取得範囲の終了日付
  * @param bool                           $only_future 未来のみフラグ
  *
  * @return Zend_Gdata_App_Feed
  */
 public function getEvents(Zend_Gdata_Calendar_EventQuery $query = null, $start_date = null, $end_date = null, $only_future = false)
 {
     if (!$this->initialized) {
         return null;
     }
     if (!$query instanceof Zend_Gdata_Calendar_EventQuery) {
         $query = $this->service->newEventQuery();
         $query->setUser('default')->setVisibility('private')->setProjection('full')->setOrderby('starttime')->setSortorder('ascend');
         if (isset($start_date)) {
             $query->setStartMin(date('Y-m-d H:i:s', DateTimeUtil::long2unix($start_date) - 32400));
         }
         if (isset($end_date)) {
             $query->setStartMax(date('Y-m-d H:i:s', DateTimeUtil::long2unix($end_date) - 32400));
         }
         if ($only_future) {
             $query->setFutureEvents(true);
         }
     }
     return $this->service->getCalendarEventFeed($query);
 }