await message.add_reaction('✅')
message = await ctx.send(embed=embed)
await message.add_reaction('✅')
Как выдать временную роль?Штатными средствами библиотеки - никак. Можно выдать роль и снять роль, а реализация отложенного таска со снятием уже на вас.
Я не знаю как написать время в кодингДля этого используется datetime, возможно в Вашем случае стоит использовать библиотеку dateparser для парсинга даты из строки.
Если у человека есть роль, то писалось "У вас уже есть роль",Посмотреть в roles что есть соответствующая роль.
А если нету роли, то выдавалась роль по айди на определённое время, например 1 неделя.Самый простой вариант хранить в бд пользователя, роль и день до которого выдано и раз в сутки проходить по всем записям и проверять кому надо снять роли.
if await check_sub_channel(message):
check_sub_channel(user_id=message.from_user.id, name=message.from_user.full_name, chat_id=message.chat.id):