# How to make a Discord birthday bot

> Let members save their birthday and have the bot wish them a happy birthday in your server on the day. Set up a Discord birthday bot from a template, no code.

Source: https://buildcord.dev/guides/discord-birthday-bot/
Updated: 2026-11-05
Publisher: Buildcord (https://buildcord.dev)

A birthday bot remembers members' birthdays and posts a message on the day. The birthdays template has a command for members to save theirs, a collection to keep them in and a schedule that runs once a day to wish anyone whose birthday it is. Schedules run on a bot that stays connected, so it needs Buildcord Boost, the $8-a-month plan.

## Steps

1. **Make a birthdays channel.** Create a channel such as `birthdays` where the bot can send messages.
2. **Start from the birthdays template.** Open the birthdays template in Buildcord. It makes a bot with the birthday command, the collection and the daily schedule already drawn.
3. **Pick the time of day.** Open the **Schedule** flow and set when it runs, such as `0 9 * * *` for 9 in the morning. Choose a time that suits most of your members.
4. **Write the message.** Change the birthday message or its embed on the **Embeds** page. Use `{user.mention}` to ping the member.
5. **Deploy and add a birthday.** Paste your token, deploy and save a birthday from a test account. Set it to today and run the schedule once from the logs to see the message.

## Good to know

- Birthdays are rows in a collection, one per member, which you can read and edit on the bot's Data page.
- Give a `Birthday` role for the day with an **Add role** step, and take it away the next morning.
- The same daily schedule can post anything on a date: an anniversary, a weekly event or a [reminder](https://buildcord.dev/guides/discord-reminder-bot/).

## Questions

### What time zone does it use?

The schedule runs at one time each day for the whole server. Pick the hour that lands on the right day for most of your members.

### Can members remove their birthday?

Yes, a moderator can delete the row on the Data page, and you can add a command that does it with a Delete rows step.

## Build it

Start from the [Birthdays template](https://buildcord.dev/templates/birthdays/), with every flow already drawn. Use the birthdays template: https://buildcord.dev/templates/birthdays/
