The Events module allows you to display and manage Events of all types in your website.
You may have events which occur every Thursday, or every month, or every day. You may not want to display them in a list with start and end dates but show the actual events that are occurring today, every day.
The Events module makes that possible with Recurring events. You can define the event's start and end date, which day of the week it occurs, or if it is monthly or daily.
Then, you have two options:
You can use the
pattern function to display the events one time until they expire or after their starting period has been reached and show their starting and ending dates to your users or you can display the actual events which occur on any given day and you do not have to worry what date that is, if you have made a weekly event which lasts for months, the actual date when it will occur will be shown with data-pattern-func="module:events@until-12/12/2017,1000". The first parameter to this until function is the end date (only events occurring before that date will be shown) and the second is the limit of events to show.
You can assign locations to events. You can even add geographic coordinates (latitude and longitude) and display a map in your views.
You can add custom fields to the events and assign a different value for each custom field to better fit your needs.
You can mark events as 'featured'. Those events will generally go in the top of the returned event list, if you want to highlight specific ongoing events.
Displaying Events by their categories
Each event can belong to one or multiple categories and you can show only events for specific categories on desired pages. To do so, you can use the pattern:
The pattern above includes three filters - category, oneDate (which means it will show the events for one date at a time), and featuredFirst (which will show featured events for the day at the top of the event list), the 2 means the category with an ID of 2 will be shown by default. If you use it, you can switch between categories on the page by adding a ?category= GET parameter or by following this URL scheme for your page: http://site.com/events/12-08-2016/4 where the page here is named 'events:any', the first argument is the date for which events are shown and the second is the ID of the category for which events are shown.
Paginating Recurring Events
It is possible that you want to display a large list of recurring events but do not want the users to scroll for ages. You can use data-pattern-func="module:events@untilPaginate-12/12/2017,1000,15 to create a paginated event list with 15 events per page. Then, you can switch your users between pages by adding the GET parameter ?page=[int]
Displaying the dates on which there are events
You can use the data-pattern-func="module:events@datesFilter-12/12/2017, 12/12/2010 pattern to display the months and days on which there are events. The first parameter is until what date to include events and the second from what date to start counting events in the list.
Displaying the list of categories available
You can use the data-pattern-func="module:events@categoriesList" pattern to get a list of all available Event categories that have been added so far.