This tutorial is based on the video training by Fraz which can be viewed at https://www.youtube.com/watch?v=mQJNvEGV_gg
Overview
Concrete CMS has a built-in calendar and time model in its core. This guide shows how to set up a calendar using out-of-the-box Concrete features, not dependant on any other add-on.
Step-by-Step Instructions
Create an Events Page
- Navigate to your website
- Create a new page to house your calendar
- Name it "Events" (or similar)
- Place it under "Home" in your site structure or wherever you want it to publish
- Save and verify the page exists
Set Up a Page Type for Event Details
- Go to Dashboard → Pages and Themes → Page Types
- Copy an existing page type
- Name it "event detail" (note: handles can't have spaces, so use underscores or camelCase if needed)
- Save the new page type
Why? This step creates a template for individual event pages that will be generated automatically when events are added to the calendar.
Create a Calendar Event Attribute
- Go to Dashboard → Pages and Themes → Attributes
- Create a new attribute
- Give it a handle and a name, ex: "calendar_event" for the handle and "Calendar Event" for the name
- Select "Calendar Event" as the attribute type
- Save the attribute
Why? This attribute stores the event information and associates it with pages.
Create a Calendar
- Go to Dashboard → Calendar and Events
- Click to create a new calendar (no calendars exist by default)
- Configure the calendar settings:
- Choose "Automatically make a page if one doesn't exist"
- Set the parent page location to "Events" (the page created in Step 1)
- Select "Event Detail" as the page type
- Select the calendar event attribute you created
- Add/save the calendar
Why? You can create multiple calendars for different departments, people, or purposes. They can be organized different in your sitemap and even have different permissions.
Create a Test Event
- In the calendar dashboard, add a new event
- Fill in the event details:
- Add content/description
- Set the "More Details" page location if a location other than the default is desired
- Set start and end dates
- Choose times (in 5-minute increments)
- Optional event features:
- Make it an all-day event (no specific times)
- Set it as a repeating event (e.g., every Friday)
- Add multiple date/time occurrences for irregular schedules
- Add custom attributes as needed (not covered by this tutorial but a great way to customize your calendar!)
- Publish the event
Add Calendar Block to Events Page
- Navigate to your Events page
- Put the page in edit mode
- Add the Calendar block to the main area
- Select your calendar from the dropdown
- Configure view settings as desired
- Publish changes Commentary: The calendar should now display on your Events page, showing the same view as in the dashboard.
Configure Event Detail Page Template
- Go to Dashboard → Pages & Themes → Page Types
- Select the "Event Detail" page type
- Click "Output"
- Choose the "Full" template
- Add the "Calendar Event Detail" block to the main area
- Configure the block:
- Set it to pull data from "the page that we're on"
- Select the event details attribute you created earlier
- Turn on all information options you want to display
- Add the block to the page
Apply Settings to Existing Pages
- Click on the block you just added
- Select "Setup on Child Pages"
- This applies the block to any event pages already created before you configured the page type defaults
Why? There's no versioning on this type of work—changes happen live.
Add Event Content to your Events Page
- Navigate to your Events page
- Edit the page
- Add a Calendar Block to the page
- Configure the Calendar Block
- Select the calendar created above
- Select your view type (Monty/Week/Day is graphical, list types are lists. Multiple types selected will allow user to select the option they prefer)
- Set other view options
- Add the block
- Save and Publish the page
- Test Your Calendar
- Return to your Events page
- Click on an event to view its detail page
- Verify that all information displays correctly (title, date, description, etc.)
- Check multiple occurrences of repeating events to ensure they each have their own URL but share the same content
- Key Features
- Event Options:
- Single or all-day events
- Repeating events (weekly, monthly, etc.)
- Multiple date/time occurrences
- Custom attributes for organization-specific needs
- Benefits:
- Centralized editing: Update an event once, and all occurrences reflect the changes
- Automatic page generation for each event
- Unique URLs for each occurrence
- Consistent time/date handling across different extensions
Your calendar is now fully functional and integrated into your Concrete CMS site!