Updates3 min read

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

  1. Open the new Birthday tab in the dashboard.
  2. Toggle the module on in the top-right.
  3. Pick a congratulation channel, confirm the timezone, set the time.
  4. Optional: pick a role (granted for 24h) and select a birthday template in the canvas editor.
  5. Run /geburtstag panel in the channel where users should self-register — done.

Enjoy. Feedback welcome in our support server.