Skip to main content
NetterTech
Event management for WordPress, done right.

How to create recurring events in WordPress

Recurring events are one of the most requested features in WordPress event management, and one of the most poorly implemented. Most plugins either duplicate posts (creating hundreds of near-identical entries) or use basic repeat logic that can’t handle real-world schedules.

NetterTech Events uses RFC 5545, the same recurrence standard behind Google Calendar and Apple Calendar, with pre-computed occurrences stored in dedicated database tables. This guide shows you how to use it.

What RFC 5545 Means for You

RFC 5545 is the internet standard for calendar data (also called iCalendar/RRULE). In practice, it means you can express patterns like:

  • Every Tuesday and Thursday
  • First Monday of every month
  • Every second Wednesday
  • Last Friday of each quarter
  • Daily for 30 days, then stop

These are native to the recurrence engine.

Creating a Basic Recurring Event

Weekly Class (Every Tuesday)

  1. Go to Events > Add New
  2. Enter your event details (title, description, venue, time)
  3. In the Recurrence section, select Weekly
  4. Check Tuesday
  5. Set the interval to 1 (every week)
  6. Choose an end condition:
    • Never - runs indefinitely
    • After N occurrences - stops after a set number
    • Until date - stops on a specific date
  7. Publish

The plugin generates all future occurrences and stores them in the wp_nte_occurrences table. Your calendar page shows each occurrence individually, but they’re all managed from a single event editor.

Monthly Meeting (First Monday)

  1. Create your event as above
  2. In the Recurrence section, select Monthly
  3. Choose By day of week
  4. Select First Monday
  5. Set interval to 1 (every month)
  6. Publish

Bi-Weekly Events

  1. Select Weekly recurrence
  2. Set the interval to 2 (every two weeks)
  3. Check the day(s) of the week
  4. Publish

Complex Patterns

Multiple Days Per Week

For a class that meets Tuesday and Thursday:

  1. Select Weekly recurrence
  2. Check both Tuesday and Thursday
  3. Set interval to 1
  4. Publish

Each day generates its own occurrence, but both are managed from the same event.

Seasonal Schedules

For a summer concert series (June through August, every Friday):

  1. Select Weekly recurrence
  2. Check Friday
  3. Set interval to 1
  4. Set end condition to Until date and choose August 31
  5. Publish

Excluding Specific Dates

Need to skip a date? Holidays, venue closures, or one-off cancellations are handled through exclusion dates (EXDATE in RFC 5545 terminology):

  1. Open the recurring event
  2. In the Exclusion Dates section, add the date to skip
  3. Save

The occurrence for that date is removed from the calendar without affecting the rest of the series.

How Occurrences Work Under the Hood

When you save a recurring event, the plugin:

  1. Parses your recurrence rule into RFC 5545 RRULE format
  2. Generates all occurrences within the configured horizon
  3. Stores each occurrence in the wp_nte_occurrences table with its own date/time
  4. Creates indexed lookups for fast calendar queries

This means your calendar page doesn’t calculate recurrence at runtime. It queries pre-computed dates, the same approach Google Calendar uses. The result is fast page loads regardless of how complex your recurrence patterns are.

When you modify the recurrence rule, occurrences are regenerated automatically.

Series Passes

For recurring events with ticketing, NetterTech Events supports series passes, a single purchase that grants access to all occurrences in the series. This is useful for:

  • Semester-long class registrations
  • Season ticket packages
  • Monthly membership events

Configure series passes in the Ticket Types section of the event editor.

Tips

  • Start date matters. The first occurrence is always the event’s start date. If it’s Wednesday and you set a recurring Tuesday event, the first occurrence will be the following Tuesday.
  • Editing the series vs. one occurrence. Changes to the event’s core details (title, description, venue) apply to all future occurrences. To modify a single occurrence, use the occurrence editor.
  • Performance at scale. We’ve tested with recurring events generating 1,000+ occurrences. Calendar queries remain sub-200ms thanks to indexed custom tables.
  • iCal export. Your recurring events export as proper RRULE entries, so subscribers’ calendar apps (Google Calendar, Outlook, Apple Calendar) show them correctly.

What’s Next


Install free or view plans to get started.