You announce a tournament for "8 PM EST" and the questions start immediately. Is that 1 AM in London or 2 AM? Did you mean EST or EDT? Someone in Sydney does the math backwards and shows up twelve hours late. Every server that spans more than one timezone has lived through this.
A countdown timer solves it. Instead of a fixed clock time that half your members have to convert, everyone sees the same event ticking closer in their own local time: "in 2 days," then "in 3 hours," then it starts.
There are three ways to make a countdown in Discord, and they're not equal. One requires nothing but copy and paste. One is built into Discord's event system. One involves inviting a bot. This guide walks through all three, in that order, because most people reach for a bot when the no-bot option would have taken thirty seconds.
Method 1: Paste a Live-Updating Timestamp (No Bot Required)
Discord has a native markdown feature that most servers never touch: dynamic timestamps. You paste a short code into any message, and Discord renders it as text that updates on its own. No bot, no permissions, no setup.
The format looks like this:
<t:UNIX_TIMESTAMP:R>
Two parts matter here. UNIX_TIMESTAMP is your event time expressed as Unix time, which is the number of seconds since January 1, 1970 UTC. The R at the end is the style code for "relative," and it's the one that behaves like a countdown.
Here's a real example. Say your event is scheduled for September 25, 2026 at 8:00 PM UTC. That converts to a Unix timestamp of 1790366400. Paste this into a Discord message:
<t:1790366400:R>
Members who read it two days early see in 2 days. Check back later and the same message says in 3 hours. After the event starts, it flips to 5 minutes ago, then an hour ago, and so on. You never edit the message. Discord re-renders it every time someone looks at it.
Two properties make this better than typing out a time:
- It updates by itself. The countdown is rendered live by each member's Discord client, so the message stays accurate from the moment you post it until long after the event ends.
- It renders in every viewer's own timezone. The member in Berlin and the member in Denver both see the correct time, because Discord does the conversion on their side. You never have to write "8 PM EST / 1 AM BST / 10 AM AEST" again.
How to create one
You could calculate Unix timestamps by hand, but nobody should. Here's the fast path:
- Open our countdown generator.
- Pick the date and time of your event. You enter it in your own timezone; the tool handles the conversion to Unix time.
- Copy the generated code, something like
<t:1790366400:R>. - Paste it into Discord and hit send.
That's the entire process. There's no bot to invite, no permissions to grant, and nothing to configure. Anyone who can type in a channel can do this, including members with zero server permissions.
Pair the countdown with an absolute time
A relative countdown tells people how long until the event, but not when it actually is. If someone wants to put it on their calendar, "in 2 days" isn't enough. The fix is to combine two style codes in the same message:
Tournament starts <t:1790366400:F> — that's <t:1790366400:R>!
For a viewer on UTC, that renders as: "Tournament starts Friday, September 25, 2026 8:00 PM — that's in 2 days!" A viewer in New York sees the same sentence with 4:00 PM instead, converted automatically. The F style shows the full date and time; the R style counts down. Together they answer both questions members actually ask: "when is it?" and "how long from now?"
There are seven style codes in total, covering short dates, long dates, and time-only formats. Our guide to timestamp format codes covers all of them with examples.
Where you can paste it
Dynamic timestamps work anywhere Discord renders markdown:
- Regular messages and announcement posts
- Channel topics, so the countdown sits at the top of the channel for everyone
- Event descriptions
- Direct messages
A pattern that works well: post the announcement with the F + R combination, then put the same countdown code in the channel topic. Members who open the channel a week later see the current state of the countdown without scrolling.
The one limitation
The relative style rounds to friendly units. It shows "in 2 hours" or "in 5 minutes," not a seconds-precision ticker like "01:59:43." For event announcements that's exactly what you want. If you need a stopwatch, this isn't one.
Method 2: Discord's Built-In Scheduled Events
If your countdown is for an actual event happening in your server, such as a game night, a stage AMA, or a watch party, Discord's Scheduled Events feature adds structure that a timestamp alone doesn't.
Click the down arrow next to your server name and choose Create Event. You pick a location (a voice channel, a stage channel, or "Somewhere Else" with a custom location for external events), set the date and time, and publish. Discord then does three useful things:
- The event appears in the Events tab above your channel list, with its own countdown to start time.
- Members can click Interested, which is opt-in, so nobody gets pinged who didn't ask to be.
- Everyone who marked Interested gets a notification automatically the moment the event goes live.
That automatic start notification is the feature timestamps can't replicate. A timestamp shows the countdown; Scheduled Events actively tell people when it hits zero.
Scheduled Events also support repeat frequencies for recurring events, which covers a lot of what people install bots for. We've written a full walkthrough covering locations, permissions, and limitations in our scheduled events guide, so this section stays short.
One note: even with a Scheduled Event, it's worth putting a timestamp in your announcement text. The event card shows times correctly, but the sentence you write above it ("This Friday at 8!") doesn't convert timezones. A <t:...:F> code does.
Method 3: Countdown and Reminder Bots
For servers that run events constantly, think raid schedules, weekly meetings, or recurring tournaments with signups, a dedicated event bot adds things Discord doesn't do natively: RSVP lists, attendance caps, and reminder pings before the event starts. Here are two established options, with capabilities verified as of this writing.
Apollo (apollo.fyi) is a calendar and event bot built around signups. You create an event with a slash command or through its web dashboard, and members RSVP by clicking a button on the event post. It supports custom signup options with per-option capacity and automatic waitlists, custom reminder messages sent before start time, and recurring events where you can change a single occurrence (say, one Tuesday that shifts for a holiday) without disturbing the rest of the series. It also syncs events to Google Calendar. The bot is free to install, with premium tiers for more advanced usage.
sesh (sesh.fyi) is an event bot with automatic timezone conversion baked into event creation. Its free tier covers event creation, RSVPs, reminders and notifications (sent to any channel you choose, timed relative to the event start), availability polls for finding a time that works for everyone, and basic Google Calendar integration. Repeating events, custom RSVP options with emojis and attendee limits, and full two-way Google Calendar sync sit behind its premium plan, which starts at $6.99/month billed annually for one server.
How the options compare
| Option | Bot required? | Setup effort | Notable free features | Best for |
|---|---|---|---|---|
| Timestamp countdown | No | None, just copy and paste | Everything (it's built into Discord) | One-off announcements and deadlines |
| Scheduled Events | No | Low, built into Discord | Event listing, Interested notifications, repeat frequencies | Events hosted inside your server |
| Apollo | Yes | Medium, invite bot and grant permissions | Slash-command events, button RSVPs, reminders | Communities that need signups and waitlists |
| sesh | Yes | Medium, invite bot and grant permissions | RSVPs, reminders, availability polls | Cross-timezone scheduling and polls |
Worth repeating: Method 1 needs no bot at all. A bot is a third-party service with permissions in your server, one more thing that can go down, and in some cases a subscription for the features you actually wanted. That's a fair trade when you need RSVPs and automated reminder pings. It's a bad trade when all you needed was a countdown in an announcement.
Which Method Should You Use?
The honest answer is that they solve different problems:
- Announcing a single event, deadline, or launch? Use Method 1. A
<t:...:R>timestamp from the countdown generator takes thirty seconds and works for every member in their own timezone. - Hosting an event inside your server and want members notified at start? Use Method 2, and put a Method 1 timestamp in the announcement text so the time reads correctly everywhere.
- Running recurring community events with signups, capacity limits, or pre-event reminder pings? Use Method 3, or Method 2 if Discord's native repeat options cover your schedule.
These stack, and the strongest setups combine them. A typical flow for a big event: create the Scheduled Event so Interested members get the start notification, then post an announcement containing <t:...:F> for the absolute time and <t:...:R> for the live countdown. Every member sees the right time, and nobody asks "wait, what timezone?"
Try It
Grab the time of your next event, open the countdown generator, and paste the code it gives you into any channel. You'll have a live countdown running in Discord before you finish reading the next announcement asking what time "8 PM EST" is.