public static function calendar($parentNodeID, $offset, $limit, $depth, $depthOperator, $classID, $attribute_filter, $extended_attribute_filter, $class_filter_type, $class_filter_array, $groupBy, $mainNodeOnly, $ignoreVisibility, $limitation)
 {
     $treeParameters = array('Offset' => $offset, 'Limit' => $limit, 'Limitation' => $limitation, 'class_id' => $classID, 'AttributeFilter' => $attribute_filter, 'ExtendedAttributeFilter' => $extended_attribute_filter, 'ClassFilterType' => $class_filter_type, 'ClassFilterArray' => $class_filter_array, 'IgnoreVisibility' => $ignoreVisibility, 'MainNodeOnly' => $mainNodeOnly);
     if (is_array($groupBy)) {
         $groupByHash = array('field' => $groupBy[0], 'type' => false);
         if (isset($groupBy[1])) {
             $groupByHash['type'] = $groupBy[1];
         }
         $treeParameters['GroupBy'] = $groupByHash;
     }
     if ($depth !== false) {
         $treeParameters['Depth'] = $depth;
         $treeParameters['DepthOperator'] = $depthOperator;
     }
     $children = null;
     if (is_numeric($parentNodeID)) {
         $children = eZContentObjectTreeNodeNoLanguage::calendar($treeParameters, $parentNodeID);
     }
     if ($children === null) {
         $result = array('error' => array('error_type' => 'kernel', 'error_code' => eZError::KERNEL_NOT_FOUND));
     } else {
         $result = array('result' => $children);
     }
     return $result;
 }