diff --git a/llama-index-core/llama_index/core/evaluation/guideline.py b/llama-index-core/llama_index/core/evaluation/guideline.py
index e8d44acc83c84e0bb1adf61b25a2abeda283255c..ac134322ffd6e1b84d7ea180ad1a39fe065d3a8f 100644
--- a/llama-index-core/llama_index/core/evaluation/guideline.py
+++ b/llama-index-core/llama_index/core/evaluation/guideline.py
@@ -59,6 +59,7 @@ class GuidelineEvaluator(BaseEvaluator):
         llm: Optional[LLM] = None,
         guidelines: Optional[str] = None,
         eval_template: Optional[Union[str, BasePromptTemplate]] = None,
+        output_parser: Optional[PydanticOutputParser] = None,
         # deprecated
         service_context: Optional[ServiceContext] = None,
     ) -> None:
@@ -71,7 +72,9 @@ class GuidelineEvaluator(BaseEvaluator):
         else:
             self._eval_template = eval_template or DEFAULT_EVAL_TEMPLATE
 
-        self._output_parser = PydanticOutputParser(output_cls=EvaluationData)
+        self._output_parser = output_parser or PydanticOutputParser(
+            output_cls=EvaluationData
+        )
         self._eval_template.output_parser = self._output_parser
 
     def _get_prompts(self) -> PromptDictType: