Engagement & Fun

How to set up Birthdays on your Discord server

This tutorial explains how the Birthdays plugin works, how to configure automatic birthday wishes, what each command does, and which permissions matter before you go live.

Reading time 6 minPublished June 21 2026Last update June 21 2026Published by SiennaNation
i
Birthdays uses your server timezone. If wishes appear at the wrong hour, check Dashboard > Settings > Timezone before changing the birthday hour.

Overview

The Birthdays plugin lets members save their birthday, lets staff manage birthday entries for other users, and sends automatic birthday wishes in a dedicated channel. It also supports optional age display, a birthday ping role, a temporary birthday role, and an upcoming birthdays calendar on the website.

Timed birthday wishes

Sends a birthday message in the channel you choose, at the configured server-local hour.

Age-aware messages

Uses a separate message template when a member saved a valid birth year and year usage is allowed.

Birthday role

Can assign a temporary role for the member's local birthday day and clean it up afterward.

Upcoming calendar

The next-birthday command includes a button that opens the web birthday board for that server.

Dashboard setup

Open the SiennaNation dashboard, choose your server, then open the Birthdays plugin. The main settings are grouped around messages, year usage, birthday roles, test messages, and command controls.

Choose the birthday channel.Select the text channel where automatic birthday wishes should be posted.
Pick the wishing hour.The scheduler checks the server timezone and sends wishes when the local hour matches this value.
Write the normal and age-aware messages.The regular template is used when age is unknown. The age template is used only when a valid year is saved.
Configure optional roles.Use a ping role for announcements, and a birthday role if you want the celebrant highlighted for the day.
Send a test message.The dashboard can post a preview to the selected channel. Test messages have a 15 minute cooldown.

Customizing birthday messages

Birthday messages support simple variables. The bot sends one message for each member celebrating a birthday, and it blocks broad Discord mentions unless they are explicitly selected through the birthday role fields.

VariableDescriptionExample output
{users}Mentions the birthday member in the regular message template.@Alex
{user}Mentions the birthday member, usually used in the age-aware template.@Alex
{age}Shows the calculated age only when the member saved a valid year.21
Example regular messageIt's {users} birthday! Send them some love.Example message with ageIt's the birthday of {user} ({age})! Time to celebrate.

Birthday year rules

The plugin has two switches for birth year privacy. Allow year usage lets members submit their full birthday date. Require year usage forces members and staff to use the full date format.

  • MM-DD saves only month and day, for example 04-16.
  • YYYY-MM-DD saves the birth year too, for example 2001-04-16.
  • If year usage is disabled, full dates are rejected so age stays private.
  • If year usage is required, short dates are rejected so age can always be calculated.
  • Leap day birthdays are handled on February 28 in non-leap years.

Slash commands

Each birthday command can be enabled, disabled, or renamed from the Birthdays dashboard. Staff-only commands require the Discord Manage Server permission.

/remember-birthday

Lets a member save their own birthday. Use MM-DD or YYYY-MM-DD depending on the server year rules.

/forget-birthday

Lets a member remove their own saved birthday.

/birthday

Shows the saved birthday for yourself or another member, including days left and age when available.

/next-birthday

Shows upcoming birthdays in a paginated Discord embed and links to the web calendar.

/set-user-birthday

Lets staff with Manage Server save a birthday for another member.

/unset-user-birthday

Lets staff with Manage Server remove another member's saved birthday.

Birthday calendar

The /next-birthday command shows upcoming birthdays inside Discord. If there are more entries, the embed uses navigation buttons. It also includes a See all upcoming birthdays button that opens the website calendar for the selected server.

The web calendar shows saved birthdays, the next birthday date, today's birthdays, active months, and clickable highlighted dates. Users must be logged in and have access to the selected server before they can view the board.

Permissions and common fixes

Most birthday issues are permission or timezone related. Check these before reporting a scheduler problem.

Birthday channel

The bot needs access to the selected channel and permission to send messages there.

Birthday role

The bot needs Manage Roles, and the SiennaNation role must be above the birthday role.

Ping role

The role must be mentionable, or the bot needs permission to mention/manage it safely.

Birthday message did not send

Confirm the plugin is enabled, the channel still exists, the bot can send messages in that channel, and the configured wishing hour has arrived in the server timezone.

Birthday role was not assigned

Make sure the role is not managed by Discord, the bot has Manage Roles, and the SiennaNation bot role is above the selected birthday role.

Age is missing

Age appears only when the member saved a valid year, year usage is allowed, and the saved year produces an age between 0 and 130.