Last updated November 12, 2012. Created by jaisenan on November 12, 2012.
Edited by serjas. Log in to edit this page.

Basically Event calendar will list all the events created in the system.
But sometimes we need to display event specific calendar. For example, in a event listing view. The step by step process for this solution is given below:

Modules needed : Views, calendar, Date, Views Field View, Views PHP

1. Create a content type (eg: 'events') and add Starting and ending Date fields to the content type. You can create event content using this content type.

2. Add a new calendar view from the existing template in calendar module(admin/structure/views add-template). From the list, you should select "A calendar view of the 'field_yourfieldname' field in the 'node' base table."(Display type of the view: Month)

3. In the edit mode of the calendar view, you should add an extra filter criteria by selecting the content type name you created for events. Also add an extra contextual filter 'Content: Nid' for display the event specific
calendar. Then save the view.

4. Now you are going to create another view for event listing. Create a new view, 'events' as a page display. Specify Filter criteria by selecting the node type of the event. Add 'Content: Nid' as a new field and tick the
option 'Exclude from display' in the configuration page. Add another field 'Global: PHP' for getting the current date to pass it as argument to the calendar view. you should write 'print date("Y-m")' in the Output Code field
and tick the option 'Exclude from display' in the configuration page.

5. Embed calendar view : (See the image attached for the configuration of this field) You can embed the calendar view by adding new field 'Global: View'. Here you should specify the name of your calendar view in the View setting section and also specify the views Display type. then
you should add contextual filter for the calendar view as '[%php]/[%nid]'. Save the view. Your Event listing with specific calendar display is ready!

AttachmentSize
embedview.png37.44 KB

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

I have tried these steps and created an events listing page with the calender embedded in it easily. In drupal 7 when the calendar style is added to my view,got a missing plugin error..Somehow this post helped me and saved my time..In drupal 6 when the calendar module is installed,a default view called 'calender' will be created. We can override it for our purpose. Moreover we can add calendar navigation style there,which has been updated as a new option(admin/structure/views add-template => 'Add view from template') in drupal 7.Here,default view will not be created unless a view is created from the existing template as said before. This is a key update to be noted.