Passa al contenuto principale

Birthday-Calendar

Let users set their birthday and congratulate them when they have a birthday.

Birthday-Calendar
Let users set their birthday and congratulate them when they have birthday
This module is open-source.
This module is storing data in your bot's database.
This module has one configuration file.
This module is being actively used on over 8500 other servers on SCNX.
This module is included for free in every plan. Learn more about prices.

Features

  • Users can register their birthday (day, month, and optionally year) using a slash command.
  • An auto-updating birthday embed displays all registered birthdays organized by month.
  • The bot automatically sends birthday congratulation messages every day at midnight.
  • Optionally assign a birthday role to users on their birthday (removed automatically the next day).
  • If a user provides their birth year, the congratulation message can include their age.
  • Birthday data is automatically removed when a member leaves the server.

Setup

  1. Create a channel where the birthday embed and congratulation messages will be sent, and configure it in the module configuration.
  2. Make sure the bot has View Channel, Send Messages, Embed Links, and Manage Messages permissions in the birthday channel.
  3. If you want to use the birthday role feature, create a role and configure it in the module configuration. Ensure the bot's role is positioned above the birthday role in the role hierarchy.

Usage

Users can interact with the birthday module using the following commands:

  • Use /birthday set to register their birthday. The year is optional -- if provided, the bot will display their age on their birthday.
  • Use /birthday status to view their currently registered birthday.
  • Use /birthday delete to remove their birthday from the calendar.

Every day at midnight, the bot checks for birthdays and:

  1. Sends a congratulation message for each user whose birthday is today.
  2. Assigns the configured birthday role (if set) and removes it from users whose birthday has passed.
  3. Updates the birthday embed with the latest data.

Commands

Understand the documentation
In these docs, name:<Type> is an option of a slash-command with name name and the type Type. Options that not required, are described as [name:<Type>]. If the action of a command is vastly different between required and not-required options, we might list them separately.
Examples
  • /moderate ban user:<Member>: This command (/moderate ban) has an required option with the name "user" that only accepts one member as a value.
  • /moderate ban victim:<Member> reason:<Text>: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value and another required option with the name "reason" that accepts any text as an value.
  • /moderate ban victim:<Member> reason:<Text> [proof:<Attachment>]: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value, another required option with the name "reason" that accepts any text as an value and a not-required option with the name "proof" which allows one attachment as its value.
CommandDescription
/birthday set day:<Integer> month:<Integer> [year:<Integer>]Register your birthday. Day and month are required. The year is optional but allows the bot to display your age. Users under 13 cannot register a birth year (Discord ToS compliance).
/birthday statusView your currently registered birthday and age (if birth year was provided).
/birthday deleteRemove your birthday from the calendar.

Configuration

In this configuration file, you can configure the module. Open it in your dashboard.

FieldDescription
Birthday-ChannelChannel where the birthday embed and congratulation messages (if not overwritten) will be sent.
(optional) Notification-ChannelOptional separate channel for birthday congratulation messages. If empty, the birthday channel is used. Unlike the birthday channel, old messages are not automatically removed from this channel.
Birthday-Embed enabledIf enabled, an auto-updating embed listing all birthdays by month will be sent in the birthday channel.
Birthday MessageThe congratulation message sent when a user has a birthday but did not provide their birth year.
Birthday message with ageThe congratulation message sent when a user has a birthday and provided their birth year, including their age.
Birthday-RoleA role that is assigned to users on their birthday and removed the next day. Leave empty to disable.
"Successfully changed"-MessageThe message shown when a user successfully registers or updates their birthday.
Birthday-EmbedCustomize the appearance (title, description, color, thumbnail, image) of the birthday embed.
Use User's Tags instead of their MentionIf enabled, user tags will be displayed in the birthday embed instead of mentions. Recommended for large servers.

Troubleshooting

The birthday embed is not showing up
  • Make sure the configured birthday channel exists and the bot has View Channel, Send Messages, and Embed Links permissions.
  • Ensure that "Birthday-Embed enabled" is turned on in the configuration.
Birthday roles are not being assigned or removed
  • Make sure a birthday role is configured in the module configuration.
  • Ensure the bot's role is positioned above the birthday role in the server's role hierarchy.
  • Verify the bot has the Manage Roles permission.

Stored data

The following data is being stored about every registered birthday:

  • The Discord User ID of the member
  • The birthday day and month
  • The birth year (if provided by the user)
  • Metadata about the entry (date when created and last updated)

To remove all data stored by this module, purge the module database.