Commands

/birthday
Set your birthday. Running it again overwrites your previous entry.
month: required day: required

How It Works

An hourly check computes "today" and assigns a ๐ŸŽ‚ Birthday role (auto-created if it doesn't exist) to every member whose birthday matches โ€” and removes it from anyone holding it whose birthday isn't today, so it's always a same-day-only badge. On bot restart, the role is immediately re-applied to anyone whose birthday is that day, so a restart never misses it.

The announcement itself only posts once per day, at your configured Notify Hour (default 9 AM).

โš ๏ธ

Birthday day/time calculations always use a fixed timezone (Mountain Time), not each server's or member's own timezone โ€” so "9 AM" means 9 AM Mountain Time everywhere.

โš ๏ธ

The dashboard's "Birthday Role" picker is currently cosmetic โ€” the role that actually gets assigned/removed is always the auto-managed ๐ŸŽ‚ Birthday role, not whatever role you pick there.

Announcement

Posted as an embed (default gold, #f9a825) with the birthday member's avatar as a thumbnail. Message supports {user} {username} {server}, picked at random from a pool if you've configured more than one. Optional pings: the birthday member themself, and/or a role.

Dashboard Settings

SettingDefault
EnabledOn
Announcement ChannelNone โ€” required for the message to post
Notify Hour9 AM (Mountain Time)
Message / message pool"Happy birthday {user}! ๐ŸŽ‚"
Ping user / ping roleOff

The dashboard also lists every saved birthday for the server, with the ability to remove an individual member's entry.