Scheduled destinations
Line up where a Zippy link points before, during, and after a drop — pre-order page, launch page, replay — on a clock. A schedule only swaps the destination; it is never an expiry.
Scheduled destinations
A schedule lines up where a link points, on a clock. Pre-order page until Friday 9am, launch page for the weekend, replay from Monday — one short link, one caption, no midnight edit.
The thing to understand first: a schedule is not an expiry. It only swaps the default destination. Nothing in this page can stop a link redirecting.
Scheduled swaps are available on Hero and up, behind the scheduled-links feature flag.
How a schedule resolves
A schedule is a list of { from, url } entries, where from is an epoch timestamp in
seconds. From that moment onward, the link's default destination becomes url. Zippy stores
the list sorted ascending — the engine walks it in order and the latest past entry
wins.
| When | Link resolves to |
|---|---|
| before the first swap | the link's default destination (the URL you created it with) |
| after swap 1 | swap 1's URL |
| after swap 2 | swap 2's URL |
Two consequences worth stating out loud:
- A future-only schedule changes nothing today — the link serves its default destination
until the first
frompasses. - There is no gap and no end state. The last swap is permanent until you change it. A schedule can't run out.
Up to 10 swaps per link. Duplicate timestamps collapse to the last one you set.
https only
Scheduled destinations must be https://. This is stricter than
audience routing, which accepts any http(s) URL — on purpose. A
scheduled swap fires unattended, so it's never allowed to silently downgrade your link to
plaintext at 3am while you're asleep.
Set it up
Dashboard (web): open a link's editor (or the ZIP form), expand Scheduled swaps, and add rows of date & time → destination. Times use a native date-time field in your own timezone — what you mean by "Friday 9am" is what you get. The row above shows what the link serves before the first swap, so you can see there's no gap.
Mobile app: the same Scheduled swaps section lives on a link's detail screen.
Via the API
Edit it with PATCH /api/links/:id — a new array replaces the whole schedule, null
clears it:
Clearing a schedule doesn't touch the link. It simply stops swapping and keeps serving whatever its default destination is.
UTMs ride every swap
If the link carries UTM tracking, Zippy composes your utm_*
parameters onto every scheduled destination automatically — the same walker that handles
routed destinations and A/B variants. Monday's replay link is tagged
exactly like Friday's launch link, with no extra work.
It composes with everything else
A schedule swaps the default destination, so it sits underneath your other link settings rather than fighting them:
- Audience routing — routing rules still win for the visitors they match; the schedule governs the default everyone else falls through to.
- A/B split testing — a split test picks among its own variants; a schedule is independent of the routing-vs-split-test choice.
- Password protection, pixels, tags & folders — unaffected.
A schedule can never kill a link
Worth repeating, because every other tool in this category ships this feature as an expiry date:
- There is no end time field. There is nothing to set that stops a redirect.
- The last swap is the destination forever, until you say otherwise.
- Clearing a schedule, downgrading your plan, or letting a flag go dark all leave the link redirecting.
A QR code you printed last year still works tonight. That's the permanence guarantee, and scheduling is built inside it.
Notes
- Hero and up, behind the
scheduled-linksflag. - Up to 10 swaps per link,
https://only, stored sorted ascending as epoch seconds. - The dashboard sends and displays your local time; the wire format is always UTC epoch seconds.
- Changing a schedule takes effect immediately; the short link itself never changes.
FAQ
Can I schedule a link to change at midnight?
Yes. Open the link's editor, expand Scheduled swaps, add a row with the date and time (midnight in your own timezone) and the new destination, and save. At that moment the link starts sending everyone to the new URL. Nobody has to re-share anything, and nothing breaks at the swap — a tap one second before and one second after both redirect fine.
Does a scheduled link expire?
No. Zippy has no expiry, no click cap, and no end date — a schedule only changes where a link points, never whether it points anywhere. After your last scheduled swap the link keeps serving that destination indefinitely.
What does the link do before the first scheduled swap?
It serves its normal default destination — the URL you created it with. A schedule that's entirely in the future changes nothing today.
How do I run a launch countdown on one link?
Put the pre-order page as the link's default destination, then schedule two swaps: launch page at go-live, replay page when it's over. Post the one short link everywhere in advance. It walks itself through the drop.
Why do scheduled destinations have to be https?
Because the swap happens unattended. Zippy won't hand your audience a plaintext page at a time
when you're not watching, so http:// is rejected on schedules even though it's accepted for
audience routing.
Read more
- Blog: Schedule the drop. The link still never dies.
- Changelog: Scheduled destinations
- Sibling features: A/B split testing · Audience routing · UTM tracking (rides every swap)