Privacy first
The birth year is optional and never shown — not in lists, not in the console. It is only used for the age if the member chooses to share it.
Nobody should have to remember 300 birthdays. With the BotGG Discord birthday bot, members save their date once with /birthday set, and on the day the bot posts your celebration message, hands out a birthday role for 24 hours and, if you like, sends a DM.

🎉 Happy birthday, @Alex — 21 today! Have an amazing day! 🎂
/birthday next

Next birthday: @Noa — March 18 (in 4 days).
Only you can see this
The birth year is optional and never shown — not in lists, not in the console. It is only used for the age if the member chooses to share it.
Celebrations go out at the hour you choose in your server’s time zone, so a 9:00 greeting means 9:00 for your community.
Give birthday members a special role — a color, a hoisted spot, a channel of their own — and BotGG removes it automatically a day later.
Write your own greeting with {user}, {username}, {server} and {age}, and add an image or GIF to the post. No message set? A friendly default is used.
Send a personal message from the server on top of the public post — handy for members who rarely check the channel.
Each birthday is claimed once per day, so restarts never post twice. February 29 birthdays are celebrated on February 28 in non-leap years.
Open https://console.botgg.app, choose your server and switch on Birthdays. Pick the celebration channel and the hour.
Add a birthday role, write the message with variable chips, attach an image and preview it in Discord style. Turn on the DM if you want one.
Everyone uses /birthday set with a day and a month. The year and the age are optional; admins can set a date for someone else.
On the day, at your hour, the bot posts the greeting, gives the role for 24 hours and sends the DM. /birthday next shows who is up next.
Some members love a big birthday shout-out, others don’t want their age on display. BotGG handles both. The date is day and month only by default; a member who adds a year can decide with show_age whether the greeting mentions it. /birthday list shows upcoming birthdays with day and month only, and only to the member who asked.
For admins the console shows every saved birthday with a “in N days” badge, today’s and this week’s count and how many members currently hold the birthday role. You can remove a birthday from there or with /birthday remove.
/birthday set day month [year] [show_age] — save or change your birthday/birthday remove, /birthday list, /birthday nextBirthday posts are one of the easiest ways to make members feel seen. Combine them with a warm welcome message for newcomers and Levels rewards for active members, or schedule other recurring shout-outs with Reminders.
Generated from the bot’s real command definitions. Full list on the commands page.
/birthdayBirthdays: save yours and see upcoming ones4 subcommands/birthday setdaymonthyear?show_age?member?Save your birthday (the year is optional and stays private)/birthday removemember?Remove your saved birthday/birthday listUpcoming birthdays on this server/birthday nextWhose birthday is next?Invite BotGG to your server, open the web console and enable Birthdays. Choose the channel and hour, and ask members to use /birthday set. That’s all the setup there is.
Only if you want it to. The year is optional and private; the greeting mentions your age only when you saved a year and set show_age to true.
At the hour you choose in the console (9:00 by default), in the time zone of your server.
Exactly 24 hours. BotGG removes it automatically — even if the Birthdays feature is switched off in the meantime.
In non-leap years they are celebrated on February 28, so leap-day members never miss their party.
Add BotGG for free, then switch features on in the web console.