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.
  • Its own interest list: someone who asks about one Thursday is told when tickets go on sale and reminded before it, and hears nothing about the other Thursdays.

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. Scanning them at the door is free too. $5 a month takes that ceiling off and adds the live check-in dashboard and the ticket 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, offered to guests right on your event pages, 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. Guests find it as "Subscribe to all events from" your schedule and give no email address for it. Change the time or take a date out, and their calendar follows at its next refresh.

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. How passes work

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. On paid tickets the waitlist is the Pro part; on free registration it is free on every plan. How the waitlist works

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 them a newsletter when the pattern changes or a new season of the class opens. Open and click rates afterwards tell you whether it landed.

The newsletter allowance counts recipients, not sends: 10 a month on Free, 100 on Pro and 1,000 on Enterprise. Not everything waits for you, though: people who confirmed an email sign-up get a digest of your newly published events, at most one every 72 hours, so next term's loop reaches them on its own. How newsletters work

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. How the embed works

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.

Zero platform fees on ticket sales, on every plan. The only deduction is your payment processor's own.

Free
$0 forever, no card

Everything you need to publish a schedule, and enough selling to find out whether you need more.

  • Unlimited events, sub-schedules and recurring dates
  • Two-way Google, Outlook and CalDAV sync
  • 25 paid tickets a month, each one scanned at the door

No expiry, and no card asked for.

Pro Most picked
$5 per month

The ceilings come off, and the rest of the selling kit arrives with them.

  • Unlimited ticket sales and the live check-in dashboard
  • Promo codes, add-ons, passes and gift cards
  • The REST API, webhooks, and no Event Schedule branding

7-day free trial, cancel any time.

Enterprise
$15 per month

For a room with a seating chart, a team, and a domain of its own.

  • Reserved seating, drawn once and reused every date
  • Your own domain, and up to five team members
  • Internal and unlisted events, and 1,000 newsletter recipients

Included free on every selfhosted install.

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, each date's own page, and the list of people who asked to hear about that date. 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 guests subscribe to a recurring event in their own calendar?

Yes, through your schedule's calendar feed, which carries every date of the loop for the next 90 days alongside everything else you publish. Your schedule and event pages offer it as "Subscribe to all events from" followed by your schedule's name, and it costs a guest no email address. Their calendar app keeps checking the feed, so when you change the time or take a date out, their calendar follows at its next refresh. The one-date download is different: it is a snapshot of the moment they took it.

Can someone ask to hear about just one date?

Yes. On that date's page a guest can leave an email address, with no account and no name, under "Tell me when tickets go on sale", or "Tell me if anything changes" once the date is already selling. They hear about that date and no other: one email when its tickets go on sale, if they were not on sale already, and a reminder shortly before it starts. If you save a venue change or cancel the event and choose to notify people, that reaches them too. Every email carries a one-click unsubscribe, and it is free on every plan.

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 and scans them at the door. $5 a month takes the ceiling off and adds the live check-in dashboard, and nothing is taken from the door on either.

.eventschedule.com
Get started free

No credit card required