Give Discord roles an expiry time
Use /temprole add to give a member a role for 30m, 2h or 7d. The bot saves the expiry and removes the role when time runs out. Existing roles stay permanent; the module only tracks roles it grants.
Start freeStart free. Pro is $9.99/month.
Temporary Roles is an opt-in Pro module. Choose a manager role, an optional log channel, a maximum grant duration and whether members receive a DM when their role expires.
What you get
Minutes, hours or days
Grant a role for a positive whole number of minutes, hours or days. The default maximum is 30 days; configure it from 1 to 365 days for new grants.
Expiry that survives restarts
Grants and expiry times stay in module storage. After a restart, overdue roles are removed and future grants remain scheduled. Failed removals retry when Discord and permissions allow.
Controlled role management
All commands require Manage Roles or your configured manager role. Both the bot and manager must be above the target role; the server owner is exempt from the manager hierarchy check. Managed roles and @everyone are excluded.
Example commands
| Command | What it does |
|---|---|
/temprole add @user @role duration | Grant a new temporary role, for example /temprole add @user @role 2h. |
/temprole remove @user @role | Remove a tracked role early. Existing permanent roles are never removed by this command. |
/temprole list [@user] | Privately list the first 15 grants in this server with their expiry times and pending status; optionally filter by member. |
Full command list and configuration options in the Temporary Roles documentation.
Worked example: give a member two hours of event access
1. Prepare a dedicated role. Create an ordinary Discord role named Event Guest and configure the event channel’s permissions for it. Keep it out of automatic or self-role lists used by other modules. Choose a test member who does not already hold it. Can you put an existing permanent role on a timer? No: Temporary Roles refuses that grant and leaves the existing role alone.
2. Enable Temporary Roles on a Pro bot, then regenerate it and start it. Open Modules → Temporary Roles → Settings and select your server. Choose an optional manager role and log channel, set the maximum duration (1–365 days, default 30) and choose whether to send expiry DMs. Save the settings.
3. Check the hierarchy. Give the bot Manage Roles and place its highest role above Event Guest. The person running the commands needs Manage Roles or the configured manager role and must also be above Event Guest; the server owner is exempt from that manager hierarchy check. Integration-managed roles and @everyone cannot be granted.
4. Grant two hours. Use /temprole add @user @role 2h, selecting your test member and Event Guest in Discord’s user and role fields and entering 2h in duration. The two hours start when you submit the grant, not when an event starts. Read the private response: it confirms a grant and expiry or says the operation is queued. Verify that the member actually receives the role and can access the intended channel.
5. Inspect the grant. Run /temprole list @user for that member, or /temprole list for the server. The private list shows the first 15 grants with expiry times and active or pending status. After two hours, the running bot attempts to remove Event Guest. Confirm both that the role is gone and that the intended channel access has ended; other roles or channel overrides may still allow access.
6. End access early if needed. Use /temprole remove @user @role with the same member and Event Guest. It only removes a tracked grant, never an unrelated permanent role. If the response says queued, restore the bot’s access and check again. To change a tracked duration, remove the grant first, confirm removal, then add a new grant.
7. Allow for downtime and retries. Expiry times persist, but an offline bot cannot remove Discord roles. Overdue grants reconcile after restart when the module is enabled and the bot can reach Discord with the required permissions. Failed removals retry; interrupted work may wait up to two minutes for its claim to expire. Optional log messages and expiry DMs are best effort.
For an Events & RSVP gathering, an authorised organiser grants Event Guest manually. RSVPs do not trigger Temporary Roles, and this module does not bill for paid memberships. Use a dedicated role so another automatic role workflow does not restore access after expiry.
What does it cost?
Temporary Roles is included in Pro — Start free. Pro is $9.99/month.
- 1 hosted bot, online 24/7
- 16 free-forever modules
- 10 custom commands
- No credit card required
- 3 bots
- All 44 modules — including Temporary Roles
- AI Module Builder (50 credits/mo)
Frequently asked questions
Can I put an existing role on a timer?
No. If a member already has the role, the grant is refused so a permanent role is not accidentally removed. To change a tracked duration, remove the temporary grant first, then add it again.
What happens while the bot is offline?
Expiry times are saved. Overdue grants are reconciled when the bot restarts. Keep the module enabled and the bot running with Manage Roles permission for automatic removal; interrupted work may wait up to two minutes for its claim to expire.
Does this require privileged intents?
This module uses slash commands and individual member lookups. It adds no privileged intents. Other enabled modules and the existing bot configuration may still require them.
Related modules
Add Temporary Roles to your server today
Create your bot, toggle the module on, and it's live — hosted for you, no code, no downloads.
Start freeStart free. Pro is $9.99/month.
