Skip to content

Recurring Events & Series

Recurring Events & Series

Many events happen on a regular schedule — weekly classes, monthly meetups, annual festivals. Instead of creating each occurrence manually, Tickets Please lets you define a recurrence pattern on an Event Series and automatically generates individual event posts for each date. Each occurrence is a full event that you can edit, cancel, or manage independently.

How Series Work

An Event Series is its own post type (tribe_event_series) that holds the recurrence pattern. When you save a series, the generate_occurrences() function creates individual tribe_events posts for each date in the pattern. Each occurrence links back to the series through the _tribe_series_event_id meta field.

This means every occurrence is a real event post with its own URL, its own tickets, its own attendees, and its own meta. The series is the parent template; the occurrences are independent children.

Creating a Series

  1. Go to Events > Event Series in your WordPress admin.
  2. Click Add New.
  3. Enter the series name and event details (description, venue, organizer, cost). These serve as the template for generated occurrences.
  4. Configure the Recurrence Pattern in the pattern meta box (see below).
  5. Set an End Condition — how the series stops generating occurrences.
  6. Click Publish.

Occurrences are generated immediately on save. You can view them in the events list, where they appear as individual events linked to the series.

Recurrence Patterns

Daily

Repeats every N days. Set the interval to control frequency:

  • Every 1 day = daily
  • Every 2 days = every other day
  • Every 7 days = weekly (though the weekly pattern gives you more control)

Weekly

Repeats on specific days of the week at a set interval. Configure:

  • Interval: Every N weeks (1 = every week, 2 = every other week)
  • Days: Check one or more days — Monday through Sunday

Example: Every 2 weeks on Tuesday and Thursday.

Monthly

Repeats once per month using one of two modes:

  • Day of month: A specific date each month (e.g., the 15th)
  • Day of week + position: A specific weekday at a specific position (e.g., the second Friday, the last Wednesday)

Week positions available: first, second, third, fourth, last.

Yearly

Repeats every N years on the same date. Set the interval to control frequency:

  • Every 1 year = annual
  • Every 2 years = biennial

The month and day are inherited from the series start date.

End Conditions

Every pattern needs an end condition. Choose one:

ConditionMeta FieldDescription
NeverGenerates occurrences indefinitely (up to a system limit)
After N occurrences_tribe_series_end_countStops after a specific number of events
On a specific date_tribe_series_end_dateStops generating occurrences after this date

For the “Never” option, the plugin generates occurrences up to a reasonable future horizon to avoid creating thousands of posts. The default horizon is configured in plugin settings.

Exception Dates

Sometimes a recurring event needs to skip specific dates — holidays, venue conflicts, or one-off schedule changes. Add exception dates to exclude them from the pattern.

Exception dates are stored as a JSON array in _tribe_series_exceptions. When occurrences are generated, any dates matching an exception are skipped.

To add an exception:

  1. Edit the series.
  2. In the Exceptions section, click Add Exception.
  3. Select the date to skip.
  4. Save the series.

The occurrence for that date (if it already exists) is deleted. If you remove the exception later, the occurrence is regenerated.

Series and occurrences have distinct URL patterns:

PageURL Pattern
Single occurrence/event/{slug}/{YYYY-MM-DD}/
All occurrences/event/{slug}/all/
Series page/series/{slug}/

The series page displays the series description and a list of upcoming occurrences. The “all occurrences” page shows the complete list including past dates.

Individual occurrence URLs include the date to distinguish them from each other, since all occurrences of a series share the same base slug.

Editing Occurrences

Each occurrence is an independent event post. You can edit any occurrence without affecting the others:

  • Change its date or time
  • Update the description
  • Assign a different venue
  • Cancel it individually (see Event Status)
  • Add different tickets

Edits to an individual occurrence do not propagate to the series or to other occurrences. The occurrence retains its link to the parent series via _tribe_series_event_id but is otherwise independent.

Editing the Series

When you edit the series itself and change the recurrence pattern, existing occurrences are regenerated:

  • New occurrences are created for dates that did not previously exist.
  • Occurrences that no longer match the new pattern are removed (unless they have attendees or manual edits).
  • Occurrences that were individually edited are flagged and not overwritten.

Be cautious when changing patterns on a series that has already sold tickets. Removing an occurrence that has attendees may require manual cleanup.

Common Questions

Can I add tickets to a recurring event? Yes. Each occurrence is a full event, so you can add tickets to individual occurrences. If you want the same ticket configuration across all occurrences, set it up on each one — ticket configuration does not automatically propagate from the series.

How do I cancel one occurrence without affecting the rest? Edit the specific occurrence and change its status to Canceled. The other occurrences in the series are not affected. See Event Status.

Can I change the venue for just one occurrence? Yes. Edit the individual occurrence and select a different venue. This does not change the venue for other occurrences or the series.

What happens if I delete the series? Deleting the series does not automatically delete its occurrences. The individual events remain as standalone events with a broken series link. If you want to delete all occurrences, delete them individually or use bulk actions.

How far into the future are occurrences generated? The generation horizon depends on the end condition. For “Never” patterns, the plugin generates occurrences up to a configurable future limit. Check Events > Settings for the recurring events horizon setting.

Can I create a series from an existing event? Not directly. Create a new series and configure it with the same details as your existing event. The existing event remains as a standalone event.

Next Steps