Table Of Contents:
Configuration
If you'd like to have a different event timezone default than the app default (usually UTC), update it via the CP. This is used on individual events that do not have a timezone set (see Fieldset below).
The default collection for your events is events
, if you use a different one, publish the config file and then update it via the CP.
Fieldset
In your collection's blueprint, make sure you have fields like in our sample fieldset.
You can also use our sample fieldset by importing events::event
.
Fields
Single Day Events
start_date
- Required - Start date of the event.start_time
- Optional (seeall_day
) - Start time of the event.end_time
- Optional (seeall_day
) - Start date of the event.all_day
- Optional - boolean. If this istrue
, then neitherstart_time
norend_time
are required
Recurring Events
- all the single day fields
recurrence
- Optional - One ofdaily
,weekly
,monthly
,annually
,every
interval
- Optional - required ifrecurrence
isevery
and indicates the frequency of the eventperiod
- Optional - required ifrecurrence
isevery
and indicates the period of recurrence. One ofdays
,weeks
,months
,years
end_date
- Optional - when is the last event. Ifrecurrence
is set and this is not, the event goes on foreverexclude_dates
- Optional - a grid ofdate
s that should NOT be included in the list of occurrences
Multi-Day Events:
- all the single day fields
multi_day
- boolean. When true,start_date
,start_time
,end_time
,recurrence
,end_date
are not useddays
- Required - array of days:
multi_day: true
days:
-
date: '2019-11-23'
start_time: '19:00'
end_time: '21:00'
-
date: '2019-11-24'
start_time: '11:00'
end_time: '15:00'
-
date: '2019-11-25'
start_time: '11:00'
end_time: '15:00'
Usage
Tags (Between, Calendar, Download Link, In, Today, Upcoming)
Common Parameters
All of the above (except Download Link) have a site
parameter you can pass the handle of the site to get the events from. It defaults to your default site. Note: if you use Livewire you may need to set this from Antlers, using {site:handle}
Additional Variables (normal entry data is available)
start
- Carbon date/time of the occurrence startend
- Carbon date/time of the occurrence end. Note if it's an all date event this will be set to 11:59:59pmhas_end_time
- Boolean that indicates if this occurrence has a set end time. In All Day events, this isfalse
- when it is a multi-day event, there is also an array of
days
that contains:start
end
has_end_time
Pagination
Only supported on between
, in
, & today
tags.
If you want to paginate the results, add paginate="xx"
, where xx
is the number of items per page, to the tag. The tag will look for a page
query parameter and paginate appropriately.
The output is identical to the collection
tag pagination.
Example
{{ events:between collection="events" from="Jan 1 2022" to="March 31 2022" paginate="2" }}
{{ results }}
...entry data as explained above
{{ /results }}
{{ pagination }}
{{ if prev_page }}<a href="{{ prev_page }}">Previous</a>{{ /if }}
{{ if next_page }}<a href="{{ next_page }}">Next</a>{{ /if }}
{{ /pagination }}
{{ /events:between }}
Filtering
Currently only simple taxonomy filtering is supported, using the same syntax as the collection
tag:
{{ events:between from="Jan 1 2022" to="March 31 2022" taxonomy:categories="harry-potter" }}
...
{{ /events:between }}
Sorting
By default the occurrenes are sorted in ascending order, to get them in descending order, use sort="desc"
on any of the tags.
Between Tag
Tag pair that returns a range of dates.
3 required params, collection
, from
& to
.
collection
- optional - which collection has the events, defaults to 'events'from
- optional, date to start from, defaults to 'now'to
- required, date to end at
Example:
{{ events:between collection="events" from="Jan 1 2022" to="March 31 2022" }}
{{ if no_results }}
{{# whatever you need to when for an empty day #}}
{{ else }}
{{ start }} {{ end }} {{ has_end_time }}
...other entry data...
{{ /if }}
{{ /events:between }}
Calendar
Tag pair that returns an entire month of dates, starting on the beginning of the week and ending on the end of the week. This means, for example, that April 2022's calendar starts on March 27th and ends on May 7th.
Parameters:
collection
- optional - which collection has the events, defaults to 'events'month
- optional, defaults to current monthyear
- optional, defaults to the current year
Output:
A collection of dates, each one containing either no_results
or occurrences
, which list all the event occurrences on that particular date.
Example:
{{ events:calendar month="october" }}
{{ date }} {{# date of event #}}
{{ if no_results }}
{{# whatever you need to when for an empty day #}}
{{ else }}
{{ occurrences }}
{{ start }} {{ end }} {{ has_end_time }}
...other entry data...
{{ /occurrences }}
{{ /if }}
{{ /events:calendar }}
Full example here.
In
Tag pair that returns a range of dates 2 required params, collection
& next
collection
- optional - which collection has the events, defaults to 'events'next
- a period that is parsable by DateTime. Examples include'2 weeks'
,'90 days'
Example:
{{ events:in collection="events" next="90 days" }}
{{ if no_results }}
{{# whatever you need to when for an empty day #}}
{{ else }}
{{ start }} {{ end }} {{ has_end_time }}
...other entry data...
{{ /if }}
{{ /events:in }}
Today
Tag pair that returns occurrences today:
collection
- optional - which collection has the events, defaults to 'events'ignore_past
- boolean, optional, defaults tofalse
. When true only current or future occurrences are shown.
Data and templating like the events:in
tag
Upcoming
Tag pair that returns the next X event dates.
collection
- optional - which collection has the events, defaults to 'events'event
- optional - if used, it gets occurrences from the given event only, and ignorescollection
parameterlimit
- required, number of occurrences to returncollapse_multi_days
- optional, only relevant on multi-day, all-day events. Whentrue
, multi-day events will only show up once in the event list.
Example:
{{ events:upcoming collection="events" limit="2" }}
{{ start }} {{ end }} {{ has_end_time }}
...other entry data
{{ /events:upcoming }}
Download Links
Single Tag returns a url to the event data and add it to your calendar.
Parameters:
collection
- required ifdate
but notevent
is passed in. Defaults toevents
.date
- ifevent
is included, download the ICS for the event on that date, otherwise download all events on that dayevent
- download all occurrences of the event, unlessdate
is include (see above)
The download will be the slugified title, unless there are multiple events, in which case it will be events
.
Example:
<a
download="event-{{ date format='Ymd' }}.ics"
href="{{ events:download_link event="some-id" date="{{ get:date }}" {{# getting the date from the `date` query param #}}
}}">Download to your calendar</a>