The Calendar functionality in the CQ5 can be leveraged to build an intuitive portal experiencing for the users. One such experience would be to display the list of upcoming events.
I would provide a simpler approach to achieve the same.
- Create a new component let’s say upcoming events.
- Open up the newly created JSP and add the following logical steps
- Retrieve the Calendar Source in the desired page either by looping through the child pages or parametrize the calendar location as a dialog entry for the component. In our case we shall assume that the dialog entry exists and proceed.
if(calendarLocation == null || calendarLocation.equals(""))
{
PageFilter filter = new PageFilter(request);
Iterator iter = currentPage.listChildren(filter);
while(iter.hasNext())
{
Page currPage = iter.next();
Resource r = currPage.getContentResource("par/calendar");
if( r != null) {
calendarManager = currPage.getContentResource().getResourceResolver().adaptTo(CalendarManager.class);
if(calendarManager != null){
calendar = calendarManager.getCalendar(currPage.getPath());
calendarUrl = currPage.getPath()+".html";
break;
}
}// resource check
}
}
else {
calendarManager = currentPage.getContentResource().getResourceResolver().adaptTo(CalendarManager.class);
if(calendarManager != null){
calendar = calendarManager.getCalendar(calendarLocation);
calendarUrl = currentPage.getPath()+".html";
}
}
- Retrieve all the Calendar events using calendar API
- Iterate over all the events and for each event , read the event properties.
- If the event happens in future then display the event along with its read properties.
- Add the component to your webpage using the sidekick after enabling it.
- The component should resemble like given below once its published or previewed with appropriate data


