Introduction and Requirements

Let's say you have a content type with a date field and term reference field. This content type could be specifically for events. Because of this, you most likely would like to display this content type in a calendar format. Luckily, Drupal's Calendar module does just that. However, if a user were to visit any of the term pages associated with that content type, they would simply get a list of content by default.

The above image shows the default display for a term with a date field.

In this tutorial, I will show you how to update the term page display to display a calendar of nodes with that term, rather than a list.

The above image shows the the same term display, this time in a calendar format.

Before we start, make sure you have the following configured:

Have a content type with a date field This content type must also have a term reference field (preferably one not being used by other content types) Install the m following modules. Calendar Date Taxonomy Display Pathauto

In this tutorial my content type is called Date the date field is called field_date and my vocabulary is called Date Category.

Update your path for the term being used in the term reference field to the following:

dates/[term:name]/month

If you have existing terms, you will need to delete their aliases and then bulk generate them.

Create a New Calendar Display From Template

Navigate to /admin/structure/views/add-template and create a new calendar view from template. Make sure you add a calendar using your specific date field. In my case it's field_date.

Name your view. I named mine Calendar Term Display

On the month display, add a contextual filter for Content: Has taxonomy term ID

Under WHEN THE FILTER VALUE IS ** NOT ** IN THE URL , configure the following:

Provide default value = enabled Type = Taxonomy term ID from URL Load default filter from term page = enabled Click Apply (this display) Rearrange the order of the contextual filters so that the Content: Has taxonomy term ID appears first​

Under PAGE SETTINGS update the path to the dates/%/month/%. This is based off of the pattern we created earlier for the term being referenced. The first % represents the term ID and the second % represents the start date.

Also under PAGE SETTINGS update the Menu to No menu entry

Under PAGER update the Link format to Pager in the settings section.

Finally, under OTHER enable AJAX

Save the view

Navigate to your vocabulary's display settings at admin/structure/taxonomy/your_vocabulary/display Enable Taxonomy term page and click Save

Now click Taxonomy term page in the upper right hand corner

Set Term display to hidden

Set Associated content display to Views

Set the View to the view we just created (in my case it's Calendar Term Display ), and set the View's display to Month