Calendar
A Views plugin that displays views containing dates as Calendars, supporting year, month, week, and day views.
calendar
Overview
The Calendar module makes it possible to create calendars with Views, based on date fields on nodes and taxonomy terms. It provides a complete solution for displaying date-based content in a visual calendar format.
The module offers four different time-based displays: Year view (showing 12 mini-month calendars), Month view (traditional monthly calendar grid), Week view (7-day horizontal timeline), and Day view (single day time-based layout). Each view type supports overlapping events, multi-day event spanning, and time-based grouping.
Calendar events can be visually distinguished using stripe legends based on content type or taxonomy terms, with customizable hex color codes. The module includes a dedicated Calendar pager for navigation between time periods and a Calendar Header area handler for displaying formatted date titles.
The easiest way to set up a calendar is by using the 'add from template' functionality provided by the Views Templates module, which generates pre-configured calendar views based on core date fields (created, updated) or custom date fields.
Features
- Year, Month, Week, and Day calendar view displays
- Support for multi-day events with visual continuation indicators
- Color-coded stripe legends based on content type or taxonomy terms
- Calendar pager for navigating between time periods
- Mini calendar display option for sidebar blocks
- Time-based grouping (hour, half-hour, or custom intervals)
- Overlapping event display with optional scrolling
- Week number display option
- Maximum items per day with 'more' link behavior
- Views Templates integration for easy calendar creation
- Support for recurring dates via Date Recur module integration
- Customizable day name abbreviations and month name formats
- Session-based date tracking for user navigation state
- Calendar Legend block for displaying color key
Use Cases
Event Calendar for Website
Create a public-facing event calendar by adding a date field to an Event content type. Use Views Templates to generate a complete calendar with month, week, day, and year views. Configure stripe colors by content type to distinguish different event categories.
Editorial Calendar for Content Planning
Build an internal editorial calendar showing when content was created or updated. Use the node 'Created' or 'Changed' date fields to display content publication timelines. Add filters by author or content type to focus on specific content.
Mini Calendar Block in Sidebar
Add a compact mini calendar to your sidebar by creating a month view with the 'Display as mini calendar' option enabled. Place the resulting View block in a sidebar region to show a quick month overview with links to detailed day views.
Booking or Reservation System Display
Display available and booked time slots using a week or day view with time grouping. Configure the 'Overlapping time style' to show concurrent bookings and use taxonomy-based stripes to indicate booking status (available, pending, confirmed).
Calendar with Color-Coded Categories
Create a calendar where events are visually distinguished by category using the taxonomy stripe feature. Add a term reference field to your content type, configure taxonomy colors in the Calendar row settings, and place a Calendar Legend block to show the color key.
Tips
- Use Views caching for better performance, especially for year views which process many dates
- Configure 'Maximum items' per day to prevent calendar cells from becoming too large
- Use the Calendar Header area handler to display formatted date titles with the embedded pager option
- Set 'Track current date in session' for authenticated users to improve navigation experience
- When creating calendar templates, the Views Templates module automatically sets up contextual filters and display paths
- For overlapping events in week/day views, choose between scrolling and non-scrolling display modes based on your typical event density
- Test calendar displays in multiple browsers as table-based layouts may render slightly differently
- Consider using the mini calendar display in blocks for navigation, linking to full calendar page displays
Technical Details
Admin Pages 2
/admin/config/date
Parent configuration page for Calendar settings under Administration > Configuration.
/admin/config/date/calendar
Configure global calendar settings including session-based date tracking behavior for users navigating through calendar displays.
Permissions 1
Troubleshooting 6
Add a Date contextual filter (argument) to your View. Go to Advanced > Contextual Filters and add a date argument for your date field (e.g., 'Content: Created (year + month)' for month views).
Enable Views caching in the Advanced section of View settings. Set both Query Results and Rendered Output caching to at least 1 hour. Consider removing the Year view if performance remains an issue.
Verify that your date field is set to use the correct timezone settings. Check that the View's contextual filter is using the appropriate date granularity (year, month, week, or full date).
Enable 'Display multi-day item as a multiple column row' in the Calendar style settings. This requires the 'Multi-day style' option to be set appropriately for month and week views.
Ensure you have configured the Legend Colors in the Calendar row plugin settings. Select either 'Based on Content Type' or 'Based on Taxonomy' and set hex color values for each type/term.
Verify that the Calendar pager is selected in the View's pager settings and that your contextual filter has a valid default value set (use 'Calendar Current date' argument default).
Security Notes 3
- The 'administer calendar settings' permission should only be granted to trusted administrators as it affects session behavior for all users
- Stripe color hex values are validated to prevent invalid input but are rendered directly in inline styles
- Calendar events inherit the access permissions of their underlying entities - ensure proper content access controls are in place