This article documents the Localist Liquid template variables for Places, Groups/Departments, Channel Pages, Components, and Featured Sections. These objects represent the organizational and structural layer of Localist — where events happen (Places), who organizes them (Groups/Departments), and how they’re displayed (Channels and Components).
Overview
Localist’s data model includes several interconnected object types that define the organizational structure of an event calendar:
Place — A physical or virtual location where events occur
Group/Department — An organization entity that hosts or manages events
Channel Page — A customizable page that displays events and other content
Component — A display element within a channel page (event lists, filters, calendars)
Featured Section — A curated collection of events displayed on a channel
The Place Object
A Place represents a location where events can occur. Places store address information, contact details, geographical coordinates, and classification data.
Identity
Variable
Type
Description
name
String
Display name of the place (alias: visible_name)
url
String
URL path for the place page
description
String
Full HTML description of the place
photo
Photo
Associated photo object
is_business
Boolean
Whether the place is classified as a business
Location
Variable
Type
Description
address
String
Street address
city
String
City name
latitude
Float
Geographic latitude coordinate
longitude
Float
Geographic longitude coordinate
directions
String
Directions to the place
parking
String
Parking information
distance
Float
Distance from a reference point (when applicable)
Contact
Variable
Type
Description
phone
String
Phone number
hours
String
Operating hours
website
String
URL to the place’s website
facebook_url
String
URL to Facebook page
has_food_service
Boolean
Whether the place offers food service
Classification
Variable
Type
Description
place_types
String
Comma-separated place type classification (alias: business_type)
Groups and Departments represent organizational entities within Localist. Both use the same object structure; the distinction is typically organizational (departments are hierarchical units within institutions; groups are independent organizations).
Core
Variable
Type
Description
name
String
Display name of the group or department
description
String
Full HTML description
description_text
String
Plain text version of the description
urlname
String
URL-friendly slug for the group/department
visible_name
String
Alternate display name
url
String
URL path for the group/department page
photo
Photo
Associated photo object
is_group
Boolean
Whether this is a group (vs. department)
is_department
Boolean
Whether this is a department (vs. group)
Social/Web
Variable
Type
Description
twitter_name
String
Twitter handle
facebook_url
String
Facebook page URL
homepage
String
Homepage URL
website
String
Website URL
Organization
Variable
Type
Description
school
String
Associated school or institution
campus
String
Associated campus or division
group_types
Array
Array of group type classifications
types
Array
Array of type objects
custom_fields
Custom Fields
Dynamic collection of custom field values
approve_requests
Boolean
Whether membership requests require approval
URLs
Variable
Type
Description
calendar_url
String
URL to the group’s calendar page
edit_description_url
String
URL to edit group description (if permitted)
add_request_url
String
URL to request membership
feed_link
String
URL to RSS feed of group events
Permissions
Variable
Type
Description
current_user_is_officer
Boolean
Whether the current user is an officer of the group
A Channel Page is a customizable landing page within Localist that displays components, events, and other content. Developers can theme the entire channel page layout, content area, and styling.
Components are display elements that render on channel pages. The base Component type has common properties, but specialized subclasses add additional attributes for specific display modes.
Base Component Properties
All components share the following properties:
Variable
Type
Description
title
String
Display name of the component
type
String
Component type (e.g., event_list, filter_list, month_calendar)
visible
Boolean
Whether the component is visible on the page
Event List Component
Event List Components display a list of events, sorted and filtered according to configuration. They add the following properties to the base component:
Filter List Components allow users to filter events by category, group, place, or other criteria. They add the following property to the base component:
Month Calendar Components display events in a traditional calendar grid. They add the following properties to the base component:
Variable
Type
Description
events_per_day
Integer
Maximum number of events to show per day cell
include_in_default
Boolean
Whether to include in default/home layout
sort
String
Sort order for events within each day
Example: Rendering a Month Calendar Component
{% if component.type == 'month_calendar' %}
<div class="month-calendar-component" data-component-id="{{ component.id }}">
<h3>{{ component.title }}</h3>
<table class="calendar-grid">
<thead>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
</thead>
<tbody>
<!-- Calendar cells rendered by JavaScript or server logic -->
<!-- Each cell can display up to component.events_per_day events -->
</tbody>
</table>
</div>
{% endif %}
The Featured Section Object
Featured Sections are curated groups of events displayed on a channel page. They allow administrators to highlight specific events in a dedicated section.
Groups, departments, and places are often accessed as collections on the channel page or other contexts:
<!-- Iterate over selected groups -->
{% for group in channel_page.selected_groups %}
<a href="{{ group.url }}" class="group-link">{{ group.name }}</a>
{% endfor %}
<!-- Iterate over departments -->
{% for dept in site.departments %}
<h3>{{ dept.name }}</h3>
<p>{{ dept.description_text }}</p>
{% endfor %}
Conditional Display Based on Permissions
{% if place.can_edit %}
<a href="{{ place.edit_url }}" class="edit-btn">Edit Place</a>
{% endif %}
{% if group.can_manage_group %}
<div class="admin-panel">
<!-- Group management UI -->
</div>
{% endif %}
Accessing Custom Fields
All objects that support custom fields (Place, Group/Department, Event) expose them through the custom_fields accessor:
<!-- Access a custom field by key -->
<p>{{ place.custom_fields.capacity }}</p>
<!-- Check if a custom field exists before displaying -->
{% if group.custom_fields.meeting_room %}
<p>Meeting Room: {{ group.custom_fields.meeting_room }}</p>
{% endif %}
Related Articles
This article is part of an 8-part series on Localist developer theming: