The TYPO3 extension Calendar Base (extension key: cal) is one of the best coded extension I have come across in a long time. It was a great learning experience and the challenge was stimulating!
About the extension
Calendar Base extension is a full-featured online calendar system. And works with popular calendar systems such as Yahoo! Calendar, Google Calendar, and Microsoft Outlook. In addition to these common calendar systems, Calendar Base is compatible with any other applications support the iCal standard data format.
It shows calendar and events in various formats like days, weeks, months etc. Searches, personal calendar, RSS, exports and many more. Please see the cal extension documentation for more details.
The magic inside
Unlike many TYPO3 extension cal is highly flexible in configuration and hence can be a bit of complicated job to configure it at times. Mostly of the things are implemented as service. And it has multiple controllers like the main controller, the frontend controller and the backend controller.
Extending Calendar Base (cal)
While working on extending Calendar Base (cal) we came across few approaches by other but most seemed novice or “dirty” implementations. Few used JavaScript to alter the frontend view and some used TypoScript as a work around. None seem to understand the beauty of code of this extension. Given the scarce information is certainly was a task that would take lot more effort.
Event search with multiple category selection with category stats
Getting inside the code of the extension and understanding it implementation was a great experience. We did a more graceful implementation of required functionality by create a new extension that extends Calendar Base (cal) – TYPO3 Extension and added new services to it. The approach makes it easier for cal extension to be upgraded to future versions as well.