New: Birthday feature with auto-congratulation and 24h role
TeraOne now wishes happy birthday automatically — users register their date privately, the bot posts on time in the server timezone, optionally with a 24h role and the same canvas card as Welcome.
What this is about
The new Birthday module is live today. Users register their birthday via slash command or panel button — the bot then congratulates automatically at the configured time in the server's timezone. Optionally with a 24-hour role and a custom-designed canvas card just like Welcome.
What you can use right now
- Private registration via
/geburtstag set— modal with day.month (required) and year (optional). Privacy-first: no year means no age display anywhere. - Panel button via
/geburtstag panel— posts a persistent embed with a 🎂 button. Click opens the same modal. Perfect for a "birthdays" channel. - Timezone & time per server — defaults to 00:00 Europe/Berlin, but any IANA timezone and minute-precise time is selectable.
- Canvas card identical to Welcome — same editor, same templates, plus the new variables
{age},{day},{month},{birthday}. Three birthday templates are pre-built: Classic, Confetti, Minimal. - 24h role (optional) — on congratulation, a configurable role is granted and removed exactly 24 hours later, automatically.
- Dashboard with 4 tabs — Overview (today / upcoming / month), Entries (table with search and month filter), Add (Discord member picker for admins), Settings (channel / TZ / role / canvas).
Privacy
Only day and month are required at registration. Year may be omitted — in that case neither the dashboard nor the congratulation displays any age. The data belongs to the user account: when an account is deleted (GDPR Art. 17), the birthday entries are removed automatically alongside it.
Leap-year handling
Users born on February 29 are celebrated on February 28 in non-leap years (matches German § 187a BGB). In leap years like 2024 or 2028 the congratulation runs on February 29 as expected.
Resilience under the hood
The fire worker uses an atomic race-claim so that a bot restart within the congratulation minute does not trigger a duplicate post. Deleted channel, role without ManageRoles permission, bot briefly offline — the congratulation is still handled as robustly as possible; failures are logged but none crashes the worker.
How to enable it
- Open the new Birthday tab in the dashboard.
- Toggle the module on in the top-right.
- Pick a congratulation channel, confirm the timezone, set the time.
- Optional: pick a role (granted for 24h) and select a birthday template in the canvas editor.
- Run
/geburtstag panelin the channel where users should self-register — done.
Enjoy. Feedback welcome in our support server.