Resources · Feature guides
Recurring events
Set up weekly classes, monthly committee meetings, and annual festivals once — Site Calendar Pro generates every occurrence automatically, handles skip dates for bank holidays, and lets you override individual instances when life gets in the way.
- You'll need: Site Calendar Pro 1.1.0 or later active, an event you want to repeat
- Estimated time: 5 minutes to set up; saves hours over a year of events
- Difficulty: Beginner — visual rule builder, no code required
Why recurring events matter
Manually creating a separate event for every Tuesday yoga class adds up to 52 admin actions a year — and that's before you account for bank-holiday skips, summer breaks, or the week you swap the venue at short notice. Recurring events turn that into a single record: one event post, one set of details, one rule that says "every Tuesday at 7pm" and the calendar populates itself.
Site Calendar Pro's recurrence engine supports the four common patterns most events fall into — daily, weekly, monthly, yearly — plus skip dates for the inevitable exceptions and per-occurrence overrides for when one specific date needs different details (e.g. a different venue for the Christmas social).
_pcal_recurrence meta field holding the rule (frequency, interval, weekdays, end condition). When the calendar renders, Pro expands the rule into individual occurrences on the fly — there's no duplicate post for every date. This keeps the database lean and lets you edit the entire series with a single save.
Before you start
Make sure each of the following is true. If any item fails, fix it before continuing.
- Site Calendar Pro 1.1.0 or later is active (the Repeats meta box was added in 1.1.0).
- Your Pro licence is active (see Activating your Pro licence).
- You have a base event ready to repeat — title, start date, start time, venue, and at least a one-line description. Create one if needed (see Creating your first event).
Step 1 — Open the event editor and find the Repeats meta box
Edit the event you want to repeat (or create a new one). Scroll down past the main content area — the Repeats meta box sits below the Tickets meta box, with a single tick-box labelled This event repeats.
Tick This event repeats. The full recurrence controls expand below.
Step 2 — Choose the frequency
The first decision is how often the event repeats. Pick the option that matches your real-world pattern:
- Daily — every day, or every N days (e.g. every 2 days for an alternating-day fitness class).
- Weekly — every N weeks, with a day-of-week picker. The most common choice for clubs, classes, and committee meetings. Pick one or more weekdays.
- Monthly — every N months. Use this for monthly board meetings, monthly drop-ins, monthly market days.
- Yearly — every N years. Used for annual festivals, anniversary events, AGMs that always fall on the same date.
The Interval field next to the frequency picker controls the "every N" part — leave it at 1 for "every week" / "every month", or change it to 2 for "every 2 weeks" / "every other month".
Weekly: pick the days
If you choose Weekly, an extra row appears with seven small day-of-week boxes (Mon, Tue, Wed, Thu, Fri, Sat, Sun). Tick the day or days the event runs. For a single weekly slot, tick one box. For a class that runs Monday and Wednesday, tick both.
Monthly: pick the rule
Monthly recurrences support two patterns. The default is "the same date each month" — e.g. always the 15th. The alternative is "the same weekday-of-month" — e.g. the second Tuesday of every month. The Repeats meta box auto-detects which pattern your start date matches and pre-selects it; switch using the radio buttons if needed.
Step 3 — Set the end condition
Every recurring rule needs an end — otherwise the calendar would generate occurrences forever. Pro offers three end conditions; pick whichever matches your real-world season:
- Repeat until a specific date — most useful for terms or seasons with a defined end (e.g. "every Tuesday until 17 December 2026"). After that date, no more occurrences appear.
- Repeat for N occurrences — useful when you know the count but not the calendar date (e.g. "a 10-week beginner course"). Pro stops generating after the Nth occurrence.
- Repeat forever — only suitable for genuinely permanent slots (e.g. a weekly church service that's been running for 50 years). The calendar generates occurrences out to a rolling 2-year horizon — you can extend it later if needed.
Step 4 — Add skip dates for known exceptions
Bank holidays, school closures, summer breaks — every recurring schedule has them. Rather than fight the rule, give Pro a list of dates to skip.
- In the Repeats meta box, scroll to Skip dates.
- Click Add skip date and pick a date from the calendar picker.
- Repeat for each date you want to exclude — e.g. 25 Dec (Christmas Day), 1 Jan (New Year's Day), the two weeks of summer holidays.
- To remove a skip date, click the small × next to it.
Skip dates take effect immediately — the occurrence on that date disappears from the calendar and the front-end. The next occurrence in the series still happens as normal.
Step 5 — Save and verify
Click Update in the top-right of the editor. The Repeats meta box collapses back to a compact summary that reads, for example:
Weekly on Tuesday, until 17 Dec 2026 (2 skip dates)
Now verify the front-end:
- View the calendar page where you've embedded the
[pro_calendar]shortcode. - Navigate to next week — your event should appear on the correct day.
- Navigate forward 4–5 weeks — the event continues to appear.
- Navigate to a week containing a skip date — the event should be absent that week, present the week before and after.
- Navigate past the end date — no more occurrences.
Overriding a single occurrence
Sometimes one specific date needs to be different — a different venue for the Christmas social, a guest speaker for one week, a 30-minute earlier start because of clock changes. Rather than abandoning the recurring rule, you can override that single occurrence.
- From the calendar's front-end, click into the specific occurrence you want to change.
- The single-event page shows the inherited details from the parent event.
- In WordPress admin, the parent event editor has an Occurrences meta box listing each generated occurrence with an "Override" button next to it.
- Click Override next to the date you want to change.
- Pro creates a child event for that single date, pre-populated with the parent's details. Edit any field — venue, time, title, description, featured image — and save.
- The override appears on the calendar at that date instead of the inherited occurrence. All other dates continue using the parent's details.
To revert an override back to the parent's details, delete the child event from Site Calendar → Events. The calendar falls back to the parent's rule for that date.
Editing the rule later
Recurring rules aren't set in stone. Re-open the parent event at any time and change the recurrence — frequency, interval, end date, skip dates. The change applies immediately to all future occurrences.
What happens to past occurrences depends on what you changed:
- Changing the end date — extends or shortens the series from today forward. Past occurrences are untouched.
- Adding skip dates — only takes effect for dates in the future. Past skip dates don't retroactively un-cancel.
- Changing the day-of-week or interval — applies from today forward; past occurrences keep their original schedule.
- Removing the rule entirely (untick "This event repeats") — all future occurrences disappear; past occurrences remain in the database for reporting.
Troubleshooting
"My recurring event only created one occurrence"
The recurrence rule didn't save properly. Three common causes: (1) you forgot to tick "This event repeats" — the meta box looks expanded even when the master tick-box is off; (2) you chose Weekly but didn't tick any weekdays; (3) you chose "Repeat for N occurrences" but left the count blank. Edit the event, check each field is filled in, and Update.
"Occurrences appear on the wrong date"
Usually a timezone mismatch. Site Calendar reads the event's start date and time from the WordPress site's timezone setting (Settings → General → Timezone). If your site's timezone is set to UTC but you're actually in BST, an event you create at 19:00 will display at 18:00 in the summer. Fix the timezone setting, save the event again, and the occurrences regenerate on the correct dates.
"I added a skip date but the event still appears that day"
Hard-refresh the calendar page (Ctrl/Cmd + Shift + R) — calendar pages are aggressively cached on most hosts. If you have a caching plugin (WP Rocket, SG Optimizer, LiteSpeed Cache, W3 Total Cache), purge its cache too. Skip dates take effect on the server immediately; the delay you're seeing is page-level cache.
"The series stops earlier than I expected"
You're either at the "Repeat for N occurrences" limit, or past the "Repeat until" end date. Edit the event and either bump the occurrence count or extend the end date. Save — the next occurrences appear automatically.
"Override appears on the calendar but inherits the parent's title"
Each override is a child event with its own title field — edit the child event (Site Calendar → Events → look for the date suffix in the title) and set a unique title. The child's title overrides the parent for that occurrence only.
"I want every 5 weeks — but the picker only goes to 4"
The Interval field accepts any whole number — type the value directly rather than using the up/down arrows if the picker is limited. 5, 6, 13 are all valid for unusual cadences.
"Daylight saving shifts my event by an hour twice a year"
This is correct behaviour for events with a fixed wall-clock time. Site Calendar honours the site's timezone, so a 19:00 Tuesday event is 19:00 local time year-round — even though the underlying UTC offset shifts in March and October. If you need a fixed UTC time regardless of season (rare; usually only for international online meetings), set the event's timezone explicitly via the per-event timezone override field.
What's next
- Creating your first event — the basics of the event editor, useful if you skipped ahead.
- CSV bulk import — for one-off batches of events that don't follow a recurrence pattern.
- Door check-in with QR codes — each recurring occurrence has its own check-in screen.
- Managing attendees — resend, undo, refund — applied per occurrence.
