Ваша функция не зарегистрирована в обработчике (dp)
Сделать это можно аналогично функции send_messages:
@dp.message_handler(commands=['days'])
async def days_message(message: types.Message):
...
В этом варианте функция будет вызываться по команде /days
Однако в вашем коде бесконечный цикл, который остановит обработку последующих обновлений бота, то есть последующие сообщения обрабатываться не будут. Чтобы это исправить, можно запустить основной код в отдельной корутине, это можно сделать так:
@dp.message_handler(commands=['days'])
async def days_message(message: types.Message):
async def task():
while True:
await asyncio.sleep(1)
now = datetime.now()
current_date = now.strftime("%Y-%m-%d")
current_time = now.strftime("%H:%M:%S")
if current_date == '2023-08-30' and current_time == '11:56:39':
await message.answer('Работает')
else:
print("Время прoшло")
asyncio.create_task(task())
Но лучше для таких действий смотреть в сторону
aiojobs или форка
aioscheduler
Возможно, предложенное мною решение, не то, что вам нужно? Если так, опишите, что вы ожидаете от вашей функции