I have a controller that is (IMO) too long (over 1200 lines). The main problem is that I have a lot of actions in it. I can group this actions in 3 groups:
calendar related actions
events related actions (let's call events a "submodule" of calendar)
providers related actions (also a "submodule" of the calendar)
What would be the best way to reorganize the code.
Could I, somehow, split it in sub-classes? Or is there any ZF-specific way to achieve this goal without creating additional controllers for the calendar "submodules"?
There is no such thing as a best way.
If you think your class is to big, you have to split the class based on separations of concerns principle.
The Principle of Separation of Concerns states that system elements should have exclusivity and singularity of purpose. That is to say, no element should share in the responsibilities of another or encompass unrelated responsibilities.
Separation of concerns is achieved by the establishment of boundaries. A boundary is any logical or physical constraint which delineates a given set of responsibilities.
If your class does not violates the Separation of concerns principle, leave it as it is.