Skip to main content
Recurring events

It comes round. Type it once.

A weekly quiz, a monthly market, a class on Tuesdays and Thursdays. Give the loop a shape, a length and its gaps, and every date after that draws itself.

See the six patterns on one ruler

Quiz Night

Tue + Thu · 19:30

Weekly, no end date, one date taken out in week four.

11 dates on the calendar. One record behind them. Change the time once and all 11 move together.

Quiz night Yoga class Farmers market Open mic Book club Bingo Chess club Life drawing Story time Monthly meetup

The unit

The unit is the loop, not the date.

What you type

1 event

A pattern, an end and any exceptions. Fifty-two Tuesdays entered by hand is fifty-two chances to mistype a time.

What comes out

6 patterns

Daily through yearly, with day-of-week ticks on the two weekly patterns and an interval of up to fifty-two weeks.

How it stops

3 ends

Never, a last date, or a number of dates. A loop with an end is the difference between a season and a calendar nobody trusts.

Shape, length, gaps. Three settings, all on the free plan. Start with the shape

The shape

Six patterns, one ruler.

The same eight weeks, measured six ways. A month grid would draw all six the same size. On a ruler you can see what you are choosing.

One eight-week window, 1 March to 25 April 2026, with the dates each pattern produces inside it.
Frequency Dates
Daily daily 56
Weekly weekly 16
Every N weeks every_n_weeks 3
Monthly, same date monthly_date 2
Monthly, same weekday monthly_weekday 2
Yearly yearly 1

Where the day ticks apply

Free

The seven day-of-week checkboxes appear for weekly and every-N-weeks, because those are the patterns that need them. Monthly and yearly take their day from the event's own start date, so an event that starts on the second Tuesday keeps landing on the second Tuesday.

Every other week, or every fifth

Free

Every N weeks takes an interval from 2 to 52 alongside the day ticks. Alternate Fridays, a market every third Saturday and a quarterly meeting all live here rather than in six separate events.

The length

Give the loop an end.

Same five weeks of Wednesdays, three ways of finishing. Two of them stop on their own; one of them is still going next February unless somebody remembers.

Never

Free

It keeps producing dates until you change it.

On a date

Free

The last date is 25 March. Nothing after it.

After a number of dates

Free

Three dates, then it is done.

"Never" is a perfectly good answer for a weekly night that has no planned last date. It is just worth choosing it on purpose rather than by default.

The gaps

A week off is a gap, not a notice.

Date exceptions edit the loop in both directions, and neither of them leaves a mark on your public calendar.

Exclude Dates

Free

Take a date out and the day is simply absent. No struck-through row, no cancellation banner, nothing for a guest to interpret. Closed for the bank holiday reads exactly like a week you were never on.

Include Dates

Free

Add a date the pattern would never produce. An included date is kept even when it falls outside the pattern or past the end condition, so a one-off extra session does not need the loop rebuilt around it.

If a date somehow lands in both lists, Exclude wins. That is deliberate: the list that removes a date should always be the one you can trust.

Every turn

One record. Separate counts.

The loop is one event, but the numbers that matter are counted date by date. Next Thursday selling out does not close the one after it.

One ticket type, quantity 40, on one recurring event. Each date counts down on its own.
Date Sold Left
Thu 5 Mar 38 2
Thu 12 Mar 40 Full
Thu 19 Mar 22 18
Thu 2 Apr 9 31
Thu 9 Apr 4 36
Thu 16 Apr 0 40

26 March is not a row on this table. An Exclude Date took it out, so there is no date to sell.

Per date

What each turn owns

  • Ticket inventory, counted against the same allowance from zero on every date.
  • Free registration and its capacity limit, with the seats left worked out for that date.
  • Check-in, which opens on the date you are working and counts only that date's arrivals.
  • A page of its own, so you can send somebody the link to one date rather than to the series.

Shared

What the loop owns

The name, the start time, the length, the description, the venue and the ticket types belong to the whole loop. Edit one of those and every date follows, which is the point.

Worth being exact about one thing: a ticket type's sales window is a single start and end moment for the type, not a window recalculated for each date. Inventory and capacity count per date. The window does not.

Registration with a capacity limit is free on every plan, and so is selling: 25 paid tickets a month per schedule, counted across the loop's dates rather than reset by each one. Five dollars a month takes that ceiling off and adds check-in and the waitlist, and Event Schedule takes zero platform fees on ticket sales on every plan.

Leaving the building

One record here. Ninety days out there.

Your schedule publishes a calendar feed anyone can subscribe to, and that is where the loop is unrolled date by date.

The subscribe feed

Free

The iCal feed writes one entry per date for the next 90 days, each one linking to that date's own page. Subscribe once and the dates keep arriving.

One date at a time

Free

Every event page offers a download for the single date somebody is looking at. It shares its identifier with the feed, so a calendar app updates the entry it already has instead of adding a second one.

Your own calendar

Free

Two-way sync with Google Calendar, Outlook and Microsoft 365, or any CalDAV server, on every plan. It syncs the event record itself and brings edits back. It does not hand the connected calendar a repeat rule, so the feed above is the one that unrolls the dates.

Ninety days of one weekly loop

Thirteen weeks, two dates a week, one week taken out for a holiday. 24 entries in the feed, from one thing you typed.

The feed is the side guests subscribe to. For the calendar you work out of, connect it directly instead.

Everything else

Once the loop is running.

One pass for the whole loop

Pro

Because the loop is one record, a season pass can be tied to it: valid for every date of that loop, once per date. Sold next to single-date tickets rather than instead of them. If you would rather sell a fixed number of visits, a pass can carry a use count instead, so ten classes on one code works too.

Each redemption is stored against the date it happened on, so you can see which weeks the pass holders actually turned up to. Advance booking is a separate switch, off until you turn it on, and it is the one that lets you cap how many seats pass holders may reserve on any one date.

When one date fills

Pro

Turn the waitlist on and people join once that date is gone. If a place comes back, they hear about it automatically.

Not announced yet

Free

A loop you are not ready to publish sits on your own calendar as a draft: visible to you and to anyone signed in on the schedule, and to no guest at all until you say so.

Tell the regulars

Free

People follow your schedule, and you write to them when the pattern changes or a new season of the class opens. Open and click rates afterwards tell you whether it landed.

The number worth knowing: 10 emails a month on Free, 100 on Pro and 1,000 on Enterprise, counted per recipient rather than per send. Nothing is sent on your behalf, so a new date never mails anybody without you writing it.

On the site you have

Free

Embed the calendar on your own site and the loop's dates show up there too, without a second place to keep them right.

A loop you can copy

Free

Clone a recurring event and the pattern comes with it, frequency, interval, end condition and both date-exception lists, so next term's class starts from this term's settings rather than from an empty form. Put the beginners' loop and the improvers' loop in different sub-schedules and guests can colour-code and filter between them on the same page.

Running the class online as well? Mark it as an online event and paste the link. How online events work

Three settings

01

Pick the shape

Choose one of the six frequencies. For weekly and every-N-weeks, tick the days it falls on and set the interval.

02

Pick the length

Never, a last date, or a number of dates. This is the setting that stops a loop selling tickets into next year.

03

Pick the gaps

Exclude the weeks you are off and include the one-offs the pattern would miss. Exclude wins if a date is in both.

Free forever. Upgrade when you're ready.

$0
Scheduling, calendar sync, newsletters, and 25 tickets a month
$5/mo
Unlimited tickets, QR check-in, event graphics, and no branding

Zero platform fees on ticket sales. You only pay Stripe's processing fee.

See all plans

Frequently asked questions

Everything people ask before they put a regular event on a pattern.

What recurrence patterns are available?

Six. Daily, weekly on the days of the week you tick, every N weeks on the days you tick (from 2 to 52 weeks), monthly on the same date, monthly on the same weekday, and yearly. The day-of-week checkboxes only appear for the weekly and every-N-weeks patterns; the monthly and yearly patterns take their day from the event's own start date, so a monthly event that starts on the second Tuesday keeps landing on the second Tuesday.

Can I change a single date without changing the rest?

Not from inside the series, and it is worth knowing exactly where the line falls. A recurring event is one record: the name, the start time, the length, the description and the ticket types belong to the whole loop, so editing the start time moves every date. What is genuinely per date is the part that has to be: ticket inventory, registration capacity, check-in, and each date's own page. If one date is really a different event, take it out with an Exclude Date and add it back as its own event.

Can I add or skip specific dates in a recurring series?

Yes. Exclude Dates take a date out of the pattern, and Include Dates add a date the pattern would not have produced. Exclude wins if a date is in both lists, and an included date is kept even when it falls outside the pattern or past the end condition, so a one-off extra session does not need the loop rebuilt around it.

What do guests see on a date I removed?

Nothing. The date is simply not on the calendar. There is no struck-through row and no cancellation notice, so an excluded date reads as "we are not on that week" rather than as something having gone wrong.

Can two sittings on the same day be one recurring event?

No, and that is worth saying plainly. A recurring event carries one start time and one length, so it produces at most one date per day it falls on. A matinee and an evening, or a morning class and a lunchtime class, are two events with two patterns. It is slightly more setup, and it keeps the two start times and their tickets properly apart.

How do recurring events reach other calendars?

Two-way sync with Google Calendar, Outlook and Microsoft 365, or any CalDAV server is free on every plan, and it carries the event record itself across. What it does not do is hand the connected calendar a repeat rule, so do not expect the series to appear there as a repeating entry. The place a loop is expanded date by date is your schedule's iCal feed: it writes one entry per date for the next 90 days, each linking to that date's own page. Every event page also offers a download for the single date somebody is looking at, sharing its identifier with the feed so a calendar app updates the entry it already has.

Can one ticket cover every date of the loop?

Yes, on the Pro plan. A season pass can be set to cover every date of the loop, once per date, and it is sold alongside single-date tickets rather than instead of them. Advance booking is off by default, which means the pass is scan-at-the-door until you switch it on; switching it on is also what lets you cap how many seats pass holders may reserve on a given date.

Free forever

Set the loop once. Stop retyping Tuesdays.

Patterns, end conditions and date exceptions are free forever, and the free plan sells 25 paid tickets a month. Five dollars a month takes the ceiling off and opens check-in, and nothing is taken from the door on either.

.eventschedule.com
Get started free

No credit card required