/**
  * Get a list of available calendars from this source
  *
  * @param bool $active Return only active calendars
  * @param bool $personal Return only personal calendars
  *
  * @return array List of calendars
  */
 public function list_calendars($active = false, $personal = false)
 {
     // Read calendars from database and remove those without iCAL props.
     $calendars = array();
     foreach (parent::list_calendars($active, $personal) as $id => $cal) {
         // iCal calendars are readonly!
         $cal['readonly'] = true;
         // But name should be editable!
         $cal['editable_name'] = true;
         if ($this->_get_ical_props($id, self::OBJ_TYPE_ICAL) !== false) {
             $calendars[$id] = $cal;
         }
     }
     return $calendars;
 }
 /**
  * Get a list of available calendars from this source
  *
  * @param bool $active Return only active calendars
  * @param bool $personal Return only personal calendars
  *
  * @return array List of calendars
  */
 public function list_calendars($active = false, $personal = false)
 {
     // Read calendars from database and remove those without iCAL props.
     $calendars = array();
     foreach (parent::list_calendars($active, $personal) as $id => $cal) {
         if ($this->_get_caldav_props($id, self::OBJ_TYPE_VCAL) !== false) {
             $calendars[$id] = $cal;
         }
     }
     return $calendars;
 }