Events
Recurring Events in WordPress: How to Set Them Up Right
How to set up recurring events in WordPress: weekly and monthly series, ending and skipping dates, cancelling one date, RSVPs, ICS feeds and what Free covers.
To set up a recurring event in WordPress, create one event with the date and time of the first session, open its recurrence settings, pick how often it repeats, and save. The plugin then builds every later date from that one rule. In Eventonomy the Free plan handles daily, weekly and monthly series, and you can cancel any single date later without touching the rest. The harder question is not the setup, it is what happens the first time one date has to be different, and that is what most of this guide is about.
A Tuesday-night pottery class runs every week for a year. Week fourteen, the studio needs the room for a private booking, so that one session moves to Thursday. Week twenty-two, the instructor is out sick and the class is skipped entirely. Week thirty, a new venue opens across town and the class relocates there for the rest of the run.
None of that is unusual. It is what actually happens to a “simple” weekly series once it meets a real calendar. It is also the point where a lot of WordPress event setups start to creak, because most of them were built to solve a much smaller problem: showing one event on one page.
How to set up a weekly event, step by step
This is the shortest path in Eventonomy. Our how-to guide has the full version with screenshots.
- Create the event as usual and set the start date and time to the first session. Every later date counts forward from this one, so it matters.
- Open the Recurrence panel in the event editor. Recurring events are on by default under Eventonomy, Settings, Appearance, Recurring events.
- Set Repeats to Weekly.
- Set Every to 1 for a class that runs every week, or 2 for every other week.
- Save. Eventonomy expands the rule into a real row for each date, and each one appears on your calendar.
That is the whole job for a plain weekly class. A daily stand-up works the same way with Repeats set to Daily, and a monthly meetup with Repeats set to Monthly. If you want a longer walk-through of a real schedule with training nights and match days, our club fixture list guide builds one from scratch.
One detail worth knowing: dates are generated up to a horizon, 12 months ahead by default, and you can set it anywhere from 1 to 60 months. A daily background job keeps extending it as time passes, so a long-running series does not quietly run out of dates.
Monthly by date, or “the second Tuesday”
Monthly rules come in two shapes, and people mix them up.
- By date. “The 15th of every month.” Every month has a 15th, so this one is stable.
- By weekday position. “The second Tuesday of every month.” The calendar date changes each month, but the weekday stays put. Book clubs, committee meetings and meetups usually want this one.
On the Free plan, a Monthly series repeats on the same day of the month as your start date, at the interval you pick, so a series that starts on the 12th lands on the 12th each month. Weekday-position rules such as “the second Tuesday” or “the last Friday”, and a fixed day of the month you choose yourself, are in Pro. So are specific weekdays like “every Monday and Wednesday”.
If you need “second Tuesday” and you are on Free, you will need Pro for it, so know that before you promise members a schedule. The tier split is laid out on our free versus Pro page, and Pro is from $99 a year.
Yearly events
An annual fundraiser, a yearly membership renewal day or a festival that returns every August is a yearly event. Yearly repeats are a Pro feature in Eventonomy. The Yearly option shows up in the dropdown on a Free site, but only the Pro engine can expand it, so a Free-only site keeps the single date and never repeats. If you see that on your site, it is not a bug in your setup, it is the tier boundary.
Ending a series: a count or an until date
An open-ended series is fine for a weekly meetup that has no planned end. A twelve-week course is different, and you want it to stop on its own.
There are two common ways to end a series:
- After a count. “Stop after 12 sessions.”
- On a date. “Stop on 31 December.”
In Eventonomy, the end-after and end-on fields are part of the Pro recurrence controls (see the advanced recurrence docs). The Free editor sets the repeat and the interval only. Where neither end is set, the series runs up to your recurrence horizon and then keeps extending daily.
A tip that holds in any plugin: for a fixed-length course, set an end rather than relying on yourself to remember to stop it. A series nobody ended is the one that is still advertising a class eighteen months later.
Skipping dates for holidays
If your Tuesday class does not run on a public holiday, you have two options. You can cancel that one date after the fact, which is covered in the next section and works on the Free plan. Or you can tell the series up front to skip a list of dates, which is a Pro feature. In Pro, the Skip dates field takes a comma-separated list such as 2026-08-05 and 2026-09-02, and removes those dates from the series.
The up-front list is better when you already know the holidays for the year. Cancelling after the fact is better when something changes late, like snow or a sick instructor. Most clubs end up using both.
Cancelling one occurrence
This is the case that matters most, so here is exactly how it works. In the event editor, find Upcoming dates under Date and Time. Each date has a Cancel this date action, and a cancelled date can be restored later. A cancelled date leaves the calendar, the browse views and the public event page. Everything else in the series stays as it was.
It also drops out of subscribed calendars. Eventonomy’s ICS feed writes one entry per stored date and leaves cancelled dates out, so people who subscribed see the date disappear when their calendar app next refreshes. That refresh is not instant, which is why we still suggest a short email to anyone who had planned to come.
Changing one date: what you can and cannot do
Here is the part we would rather say plainly than have you find out in week fourteen.
You can cancel a single date and restore it. You can edit the whole series, and when you change the start or end time every upcoming date moves to the new time, keeping its registrations. The local time holds across daylight-saving changes. Past dates, dates you cancelled and dates you edited on their own keep their own time and status.
You cannot move one date to a different day or time inside the series. There is no “this occurrence only” option and no “this and future occurrences” option. If week fourteen has to move to Thursday, cancel that Tuesday date and create a separate one-off event for the Thursday session. It is a clear workaround rather than a hidden edge case, but it is a workaround, and you should weigh it if your schedule shifts often.
This is the question to put to any plugin before you build on it: not “does it support recurring events,” but “what happens the first time one occurrence needs to be different.” Plenty of tools answer with a demo that never touches that case.
A series is not the same as a pile of copies
Why does it matter how a plugin stores a series? Because of what happens when you edit it.
The easy way to build recurring events is to generate a separate, unrelated post for every occurrence the moment the series is created. Fifty-two posts for a year of weekly classes, sitting in the database like fifty-two unrelated events. It looks fine on day one. It breaks the moment anything about the series needs to change. Rename the class and you are editing fifty-two posts by hand. Change the venue for the whole run and the problem multiplies.
The better model treats the series as the real record, with each date as a stored occurrence of that record. That is how Eventonomy works: one event holds the rule, and each date gets its own row, so it can show on the calendar, carry its own reminders and be cancelled on its own, while the title, venue and description are edited once for the whole series. That distinction is invisible when everything goes smoothly and expensive to fix after the fact if you picked wrong.
”Edit all future occurrences” is where the data model leaks
Many event tools offer “edit this event” versus “edit all future events in this series.” That single choice does a lot of quiet work. It has to decide what “future” means relative to dates that were already individually changed. If week fourteen was moved and week twenty-two was cancelled, does an edit from week ten flatten those exceptions, or respect them?
There is no universal right answer, but there is a right expectation to set: the organizer should be told, not surprised. A plugin that silently reverts your manual fixes the next time you touch the series description was not built with exceptions in mind. Eventonomy takes the simple route and edits the whole series, with a defined rule for what survives. Dates you cancelled stay cancelled while the rule still includes them, and dates you edited on their own keep their own time. If you shorten the rule so it no longer produces some dates, those dates leave the series, and if you change the rule back they return.
How RSVPs and tickets work across a series
An attendee RSVPs to the event, and one RSVP covers the series. The capacity you set on the event applies across it. That suits a weekly club night where the same forty people turn up, and it is worth knowing before you plan catering for a single date.
Reminders are different. They go out per date: an attendee gets the one-day and one-hour reminder for each upcoming occurrence, naming that occurrence’s date. If a date is cancelled, it leaves the calendar and the public event page.
If you need a headcount for one specific session, or a paid ticket limited to one night, plan it as its own one-off event. Our RSVP and ticket docs cover the options. We have also seen sites run a recurring free series for the community and a separate ticketed event for the occasional special night, which keeps the numbers clean.
The same logic applies to attendance after the fact. “How many people came on Tuesday” is a per-date question, and a system that can only tell you how many are signed up in general answers a less useful one. Ask your plugin how it reports on this before the first season, not after.
Reminders per date
Reminders matter more on a repeating event, because people forget a Tuesday class far more easily than a one-off conference. Eventonomy sends them with no setup on the Free plan: every confirmed attendee gets a reminder one day before and one hour before. On a recurring event the reminder is about the specific upcoming occurrence, with its own date and its own add-to-calendar links, not about the series as a whole.
Pro adds custom timing. The field takes a list of hours, with “24, 1” as the default, so you keep the two standard reminders unless you change them, and you can add more. Pro also adds SMS. The reminders docs have the details. One practical note: reminders run on your site’s scheduled jobs, so make sure your cron is actually running.
How a recurring series shows on the calendar and in feeds
Each date appears on the calendar as its own entry, so a visitor browsing the month view sees every Tuesday, not one card for the whole series. Cancelled dates leave the browse views.
Recurring events also leave your website. Someone finds your weekly class, taps “add to calendar” and their phone subscribes to a feed once. After that their calendar shows the series the way the feed describes it, refreshed whenever their app next checks, which can be hours apart. Eventonomy’s subscribable feed covers published public events that still have an upcoming date, lists each upcoming date, and leaves cancelled dates out. ICS feeds and add-to-calendar are free. The calendar feed docs show the feed address and how to subscribe in Google Calendar and Apple Calendar.
That makes the feed good at one job: getting the whole series into somebody’s calendar without them copying dates by hand. It is less reliable as the way to tell people about a single change. Calendar apps differ in how they refresh, and a refresh can land after the person has already set off. So when one date is cancelled, say so directly as well. A short message to the people who plan to attend reaches them faster than any feed refresh, and it does not depend on how each calendar app behaves.
SEO: one page for the series, or one page per date
This is a real trade-off and it is worth deciding on purpose.
With one event page for the whole series, all the links, shares and search signals gather on a single address. It is easy to keep fresh, and a search for “Tuesday pottery class” lands on one clear page. That is usually right for a class, a club night or a weekly meetup, where the thing people want is the series itself.
A page per date helps when each session is genuinely different, like a fixture list with a new opponent each week or a monthly talk with a new speaker. In that case people search for the specific session, and the specific page can rank for it.
A good rule: if the title, venue and description would be identical for every date, keep it as one series. If each date has its own headline, make each its own event. Mixing the two is fine. A recurring series for the training nights and separate one-off events for the fixtures is how the club fixture list guide sets it up.
Whatever you choose, keep the series description specific. “Weekly beginner pottery, Tuesdays at 7pm, Studio 2” gives a searcher and a search engine something to hold onto. “Our weekly class” does not.
Moving a recurring series from another plugin
If your series already lives in another plugin, you do not need to retype it. Eventonomy’s importer reads The Events Calendar, EventON, Events Manager, WP Event Manager and Sugar Calendar straight from your database, and takes CSV or iCalendar files too. It is available on the Free plan.
What happens to recurring events depends on the source:
- Recurring rules are translated to Eventonomy recurrence where they can be. Rules that do not translate import as single events and are flagged in the preview, so you see them before anything is created.
- With EventON, each repeat date is already stored as an explicit list, so each becomes a real occurrence directly.
- With Events Manager, a recurring series imports as one recurring event, and the per-date child posts are skipped so nothing doubles up.
The scan is a dry run, so nothing is created until you confirm, and the whole import can be undone. Orders, payments, sold tickets and RSVPs are not carried over. Our migration guide walks through each step. Check the preview report for any recurring rules that did not translate, and rebuild those by hand.
What to check before you pick a plugin
Recurring events are one of the places where a plugin’s free-versus-paid split tells you something real about how it was built. Several tools that get recurring series right hold that capability back for a paid tier, which is a reasonable business decision, but it also tells you they see it as the hard part.
In Eventonomy, daily, weekly and monthly series ship in the free plan alongside RSVPs and the ICS feed, and any single date can be cancelled or restored without touching the rest of the series. Yearly, “second Saturday” style rules and skip dates are in Pro. There is no per-user fee, no per-ticket platform fee and no commission, because it is a plugin on your own site.
Run this short checklist against any plugin, ours included:
- Can you cancel one date without deleting the series?
- Can you change one date, and if not, what is the workaround?
- Does editing the whole series keep the registrations on upcoming dates?
- What do subscribers see in their calendar when a date is cancelled?
- Which repeat patterns are free, and which need a paid plan?
If you are comparing options for a WordPress site, our event plugin overview and the free versus pro breakdown go through what is included at each tier. If you are running a regular meetup, the meetups page covers the parts that come up most in that setting.
Set the series up expecting exceptions, not hoping to avoid them. Week fourteen always comes eventually.
Watch it
More videos on this