All posts

How to publish your YouTube stream schedule to Discord automatically

You schedule a stream in YouTube Studio. Then you go and tell your Discord about it. Then you move the stream, and now Discord is wrong — but nobody notices until someone shows up an hour early.

The manual loop is the problem. Every schedule change needs a second, human step, and that step gets skipped exactly when you're busiest. Worse, whatever you type is in your timezone, so a chunk of your server does the conversion themselves and some of them get it wrong.

This guide sets up the loop once so it runs without you: YouTube → StreamDay → Discord, with times that render in each member's own local time.

What you end up with

Two things post to a channel of your choosing, automatically:

  • A weekly summary — the coming week's streams, posted on the day and at the time you pick.
  • Go-live reminders — a heads-up before each stream starts, at lead times you choose. Up to three per stream.

Every time in both is a native Discord timestamp, not typed text. Discord renders it in each reader's own timezone and clock format, so a member in Manila and a member in Manchester see the same message showing their own local time. Nobody converts anything.

This is the same mechanism behind Discord timestamps you write by hand — StreamDay just generates them from your real schedule instead of you building each one.

Before you start

Three things:

  1. A StreamDay account. Sign-in is via Discord, so there's no separate signup.
  2. Scheduled live streams on YouTube. The sync reads streams you've already scheduled in YouTube Studio — it doesn't create them. If you haven't set any up, how to schedule streams on YouTube covers that first.
  3. Permission to manage your Discord server — specifically the Manage Webhooks permission. If it's someone else's server, they'll need to do Step 4 and send you the URL.

One thing worth knowing up front: the Discord integration only appears once your schedule is published, which needs a subscription (there's a 30-day free trial). Everything before that step is free, so you can build the whole schedule and preview it before deciding.

Step 1 — Connect YouTube

Go to your Schedule page. In the sidebar you'll find the Platform sync panel. Click to connect YouTube and you'll be sent through Google's standard consent screen.

What StreamDay actually asks for is worth stating plainly, because "connect your YouTube account" makes people justifiably nervous. The requested scope is:

https://www.googleapis.com/auth/youtube.readonly

Read-only. StreamDay calls exactly one endpoint on your channel — liveBroadcasts.list — to read the live streams you've scheduled. It cannot upload, edit, delete, comment, or change anything on your channel, because the token it holds has no permission to do any of it.

Step 2 — Check what came through

The first sync runs immediately on connect. Your scheduled YouTube broadcasts should appear on the calendar alongside anything you've added by hand.

After that, sync runs hourly on its own. There's also a Sync all platforms button if you've just changed something and don't want to wait — it has a roughly 15-minute cooldown per platform, and it'll tell you honestly when you've hit it rather than pretending it worked.

A couple of things to check now, because they're much easier to fix before you've wired up Discord:

  • Titles read the way you want. Whatever the broadcast is called on YouTube is what lands in Discord.
  • Times are right. They're stored as absolute moments, so they'll be correct for everyone — but if a stream is on the wrong day here, it's on the wrong day on YouTube too.

If you stream on more than one platform, publishing a unified Twitch and YouTube schedule covers combining them into one page. The Discord setup below is identical either way — it posts your schedule, whatever fed it.

Step 3 — Publish your schedule

The Public Link panel on the same page is where you publish. Publishing gives your schedule a public URL — the thing you put in your YouTube banner, your channel description, and your bio — and it's also what switches on the Discord row.

You can see exactly what a published one looks like on the live example schedule before you commit to anything.

Step 4 — Create the Discord webhook

This part happens in Discord, and it takes about a minute. No bot to invite, no extra permissions granted to anyone, nothing to keep running.

  1. Open Server Settings → Integrations → Webhooks.
  2. Click New Webhook.
  3. Pick the channel it should post to — a #stream-schedule or #announcements channel works well.
  4. Optionally name it StreamDay and give it an avatar. This is the name your members will see on the posts.
  5. Click Copy Webhook URL.

Treat that URL like a password. Anyone holding it can post to that channel. If it ever leaks, delete the webhook in Discord and make a new one — that instantly invalidates the old one.

Step 5 — Connect it in StreamDay

Back on your Schedule page, the Public Link panel now has a Discord row. Click Setup, paste the webhook URL into the Webhook URL field, and connect.

StreamDay verifies the webhook straight away and shows you which server and channel it's posting as, so you can confirm you pasted the right one before anything goes out.

Step 6 — Set up the weekly summary

Turn on Weekly summary and choose:

  • Post every — the day of the week.
  • At — the time of day.
  • Mention @everyone — optional, and off by default.

Sunday evening or Monday morning are the obvious picks. My honest advice on the mention: leave it off for the weekly digest. It fires 52 times a year, and an @everyone that predictable is the fastest way to get your announcements channel muted by the people you most want reading it.

Step 7 — Add go-live reminders

Turn on Stream reminders and add up to three per stream. Available lead times run from 5 minutes to 12 hours before:

Lead timeGood for
5 / 10 / 15 minutes"Starting now" — catches people already online
30 minutes / 1 hourThe main one. Enough time to finish what they're doing
2 / 3 hoursSame-day heads-up for a bigger stream
6 / 12 hoursMorning-of notice for an event or collab

Each reminder has its own @everyone toggle, which is the useful bit: you can run a silent 6-hour notice and a single mentioned 15-minute one, so the ping lands only when it's actually actionable.

Two or three reminders is plenty. A good default is 1 hour and 15 minutes, with the mention only on the 15.

What your members actually see

Because the times are native Discord timestamps rather than typed text, a single post reads correctly for everyone:

  • Someone in Los Angeles sees their evening time.
  • Someone in Berlin sees their next morning.
  • Someone with 24-hour time set sees 20:00; someone else sees 8:00 PM.

Discord does the conversion locally, per reader, from one absolute moment you never have to think about. It also survives daylight saving shifts, which typed-out conversions famously don't.

There's a video walkthrough of the whole webhook flow if you'd rather watch it than read it.

Keeping it accurate

The setup is deliberately low-maintenance, but three things are worth knowing:

Schedule changes take up to an hour to reach Discord. Sync runs hourly. If you move a stream and want Discord correct immediately, hit Sync all platforms — subject to the cooldown mentioned earlier.

You can hide a platform without disconnecting it. Each connected platform has a show/hide toggle in the Platform sync panel. Hiding removes that platform's streams from both your calendar and your public page while keeping the connection and its history intact. Useful if you're trialling a second platform and don't want it public yet.

A webhook can break. If you delete the channel, delete the webhook, or the server is removed, StreamDay flags it as broken and tells you to reconnect rather than silently failing. Create a new webhook and paste the new URL.

Is this better than Discord's own scheduled events?

They solve different problems, and using both is reasonable. Discord events are excellent for hyping one stream inside your server — RSVPs, a countdown, a notification. What they aren't is a schedule: they don't reflect your YouTube calendar, they don't update themselves, and they don't exist anywhere outside that server.

The comparison is worth reading properly if you're deciding: Discord scheduled events vs a published stream schedule.

In short

Connect YouTube once, publish your schedule, paste one webhook URL, pick a digest day and a couple of reminder times. After that, scheduling a stream in YouTube Studio is announcing it in Discord — in everyone's own timezone, without you touching it again.