Back to Blog

Introducing Time-Limited Passes

Introducing Time-Limited Passes

Every subscription on Subscriby has always started the same way: someone pays, and access begins that second. That is exactly right for a membership. It is exactly wrong for a Sunday match, a London-session trading room, or a Saturday cohort class.

Today we are shipping Time-Limited Passes — a plan type where you decide when access opens and closes, not the payment processor. A customer can buy Sunday’s pass on Wednesday, be admitted automatically on Sunday morning, and be removed on Sunday night, without you touching anything on the day.

It works for five buyers or five hundred.

Updated 31 August 2026. Passes now come in two shapes. This post has been revised throughout to cover Pass Series — one payment for a whole slate of dates — which answers the question we said no to when this shipped. The section on bundling is the one to read if you were here the first time.


The problem it solves

A sports handicapper we work with sells access per slate — Thursday, Saturday, Sunday, Monday. Four products, four different windows, four different lengths. Before this feature, running that on any Telegram membership platform meant one of three bad options:

  • Sell a monthly subscription and hope. You are charging for a month to deliver four hours. Customers notice.

  • Open and close the channel by hand. Fine at ten buyers. At a hundred and fifty, you are awake at 9am on a Sunday adding people one at a time.

  • Glue it together with Zapier or n8n. Works until a webhook is late, and then someone who paid is locked out of the thing they paid for.

None of those are a product. They are workarounds for a missing one.

How a pass actually behaves

The mechanism that makes this feel automatic is a held join request. Subscriby already mints invite links that require approval, which means every join is something we control rather than something that just happens.

  1. They buy, whenever. Wednesday, Friday, ten minutes before kickoff. They pick which date they want at checkout — the next one is preselected, and dates they already hold are hidden so nobody buys the same window twice.

  2. They tap their invite link, whenever. Nothing appears to happen, and that is correct. They are placed in a queue, and the bot tells them so straight away — when access opens, when it ends, and how long they will have.

  3. The window opens. Everyone holding a pass is admitted automatically, whether or not they are looking at their phone. Admissions are paced to stay inside Telegram’s rate limits, so a hundred and fifty people is the same event as five.

  4. The window closes. Everyone is removed, the pass ends, and the channel is empty again before the next slate.

That third step is the whole feature. A customer acts once, days early, and is let in at the right moment without being present. Nobody sits refreshing a channel waiting to be added.

One purchase, one window — and now, one purchase, many

A pass is a ticket to a dated window, not a membership. One purchase covers exactly one window, and buying another window means buying another pass. That is still true, and it is still the right default.

When this shipped we explained why we had not bundled: four Sundays on one payment sounds convenient until a customer cancels after the first one, and then you are arbitrating what happens to windows two through four with money already taken. One purchase, one window has no such state to get wrong.

That reasoning was sound and the conclusion was wrong. The problem was never that bundling is a bad idea — it is that a purchase could only point at one window, so a bundle had nowhere to live. We have since replaced that single pointer with a ledger: a purchase now holds any number of dates, each with its own state, and “what happens to window three” is a row rather than an argument.

So Pass Series now ships alongside the original pass. A season ticket over ten match days, an eight-week course, a weekend of talks — one payment, one purchase, every date included. The next section is how it works.

Either way, a customer can hold a Thursday pass and a Sunday pass at the same time, a season ticket that covers both, and an ordinary monthly subscription alongside all of it, each with its own invite links.

Pass Series: a season ticket

A series sells a curated slate of other pass plans’ windows. It owns no dates of its own — it points at dates your pass plans already generate — and that single decision is what makes the rest behave.

  • Each date grants its own plan’s channels. A season ticket can span a match-day channel and a weeknight room without you mapping anything.

  • Every date is issued the moment they pay. Nothing to claim one at a time. Each still opens and closes on its own schedule, so the gating still means something between sessions.

  • A date they already bought is not sold to them twice. It is de-duplicated at grant time and their timeline says so.

Composing one is a picker, not a form. Tick the dates you want from any of your pass plans — or describe them with a rule: every window on Match Day between September and December. A rule keeps working after the sale, which is the part worth pausing on. A fixture added mid-season is absorbed into the slate and granted to everyone already holding the series, at no extra charge, with a message telling them so. Handpicked dates never grow on their own. The two compose, and most real seasons use both.

The rest is fences: a seat limit, a sales cutoff measured against the whole season rather than one window, an overlap guard that refuses to hand a holder two things at the same time, and a next season link whose holders-only presale opens automatically when the last date closes. Who gets that presale is worked out at the moment it opens rather than at checkout, so you can link a follow-on season months after this one sold out and still reach everyone who bought it.

Buyers get a timetable on the bot and in the portal showing every date, which they attended and which they missed — and a calendar feed that puts the whole season into Apple Calendar, Google Calendar or Outlook with a reminder an hour before each one. That feed is offered to single-pass holders too; if anything they need it more.

The full walkthrough, control by control, is in the Pass Series guide.

When a date is cancelled mid-season

The awkward case we were worried about, answered properly. Cancel a window a season ticket points at and every holder is resettled individually:

  • A replacement exists — they are moved onto it, never onto a date they already hold, and their season carries on at the same length.

  • None does — that date leaves their season and the rest is untouched. They are told which date went, where they now stand, and roughly what it was worth as a share of what they paid.

That last figure is information, not an action. Subscriby computes it and shows it to both sides; it never moves the money, because a refund is yours to issue and yours to decide. The webhook carries the same number so you can act on it in bulk.

Building a schedule

Every plan now opens with a choice of three cards — Recurring Subscription, Time-Limited Pass or Pass Series — and the rest of the form follows it. Pick Time-Limited Pass and the pricing, trial and renewal sections are replaced by a schedule. There is nothing to renew and no trial to run.

Every row is one window with its own length, so short and long windows live on the same plan:

DayStartsLasts
Thursday19:003 hours
Saturday12:0010 hours
Sunday09:0014 hours

Schedules repeat daily, weekly or monthly. If a pattern does not fit — a one-off match, a rescheduled session, a single workshop — switch on Place Each Pass by Hand and place each date yourself instead.

Stop selling closes sales a set number of minutes before each window begins, which is worth setting if you sell right up to the start. And every time you enter is a wall-clock time in a timezone you choose on the plan, so a 09:00 window stays 09:00 through a daylight-saving change rather than quietly drifting by an hour.

The full walkthrough is in the Time-Limited Passes guide.

A sold window never moves

This is the rule we built everything else around: once a window has a buyer, its times are frozen. No slot edit, recurrence change, timezone change or regeneration will move it. Someone paid for that occurrence, so that occurrence happens as sold.

Change a Saturday slot from 12:00 to 13:00 and the plan will legitimately show both — the old 12:00 that forty-seven people bought, and the new 13:00 for future buyers. The windows panel marks the sold ones as locked so it reads as intentional rather than as a bug.

The same rule blocks anything that would take passes away while customers hold windows that have not run yet — deleting a plan, turning passes off, downgrading to a plan without passes, or dropping the Passes Addon. Disable the plan instead: new sales stop, and the windows people already bought still go ahead.

The one sanctioned exception is a postponed event. Cancel a sold window and every holder is either moved to the next available window or, if there is none, has their pass ended and is told to ask you for a refund. Everyone affected is messaged either way. It is never automatic.

Authoring from anywhere

Passes are not a dashboard-only feature:

  • Dashboard — the full editor, plus a windows panel showing every upcoming date, how many customers hold each one, and a form for placing dates by hand.

  • Telegram bot — the plan wizard builds repeating pass schedules too. Send windows one per message (Sunday 19:00 3h) and tap Done. A slate can go on sale from your phone.

  • REST API — the pass fields and slot array are documented in the Plans API reference.

  • MCP — an AI agent can create a pass plan through the create-plan tool, and assemble a season ticket by reading window ids from list-pass-windows first.

Plan payloads changed shape to make room for the third kind: every plan now carries a kind, and that names the one block of fields it takes. The old shape emitted a billing cycle on passes, where a cycle means nothing. Zapier and n8n moved with it — both are major releases, and existing Zaps using Create Plan or Update Plan need their fields re-mapped.

Sixteen webhook events

Automate around the schedule with the pass.* family — a window being scheduled, opened, closed or cancelled, and per holder, queued, moved, missed or stranded. Post the day’s card when a window opens, drop a recap when it closes, chase the people who never tapped their link, or sync attendance somewhere else entirely.

pass.window_scheduled is the one integrators asked for most: until now a schedule could not be mirrored into a calendar or a CRM without polling for it, because nothing fired when a window came into existence.

Season tickets get their own family, pass_series.* — purchased, each date completing, the season completing, dates added by a rule, substituted or dropped, seats exhausted, and the holders-only presale opening. Two of those are worth reading the field reference for: pass_series.leg_dropped carries a pro-rata figure that is information rather than a refund, and pass_series.purchased fires in addition tosubscription.activated, so de-duplicate on the subscription id if you subscribe to both.

All sixteen are available in Zapier and n8n as well as raw webhooks — see the pass and pass series event references.

Who this is for

  • Sports handicappers and tipsters selling per-slate access — the case that prompted the feature. We built a page for it.

  • Traders running London-session or market-open rooms.

  • Educators and coaches selling a seat in a scheduled class or cohort.

  • Analysts opening a channel on the day a report drops.

A series suits the same people at a different moment: a club selling a season ticket across a fixture list, a tutor selling an eight-week course rather than eight lessons, an analyst running a quarterly cohort. The rule of thumb is whether a buyer would rather commit once than decide every week.

If your product is an ongoing membership, keep using an ordinary subscription plan. Passes are for things sold by the occasion.


Availability

Time-Limited Passes is available on every plan. It is included in Growth. On Free and Starter you unlock it with the Passes Addon, billed on the same cycle as your plan — $19 per month, or $190 per year on an annual Starter plan. Free is monthly-only, so the addon is always the monthly price there.

So you do not have to move to Growth to sell dated passes. Add the addon under Billing → Plans and you can start building pass schedules the moment the payment succeeds, paying only for the days left in your current period. Removing it later takes effect at the end of the period you already paid for, with no refund, and upgrading to Growth drops the addon automatically and credits the unused time.

Pass Series is unlocked by the same capability — if you already sell passes, you already have it. There is no extra transaction fee on a season ticket either; it is billed at your usual rate like any other plan.

Ordinary recurring plans remain on every tier including the free one.

Your subscribers need to do nothing. Passes and season tickets appear alongside your other plans in the bot and portal, clearly labelled with their dates and times.

Create your first pass at app.subscriby.net

আপনি কি আপনার Telegram বিজনেস স্বয়ংক্রিয় করতে প্রস্তুত?

ম্যানুয়ালি ব্যবহারকারী পরিচালনা করা বন্ধ করুন। আপনার সাম্রাজ্য গড়ে তুলতে শুরু করুন। Subscriby দিয়ে হাজারো নির্মাতার মতো সহজে আপনার চ্যানেল থেকে আয় করুন।

আমাদের রোডম্যাপসমূহ