Конкретно в этом примере оно не может работать, потому что в старт передается message, а функция в расписании вызывается без него. Вы буквально пытаетесь отправить сообщение в несуществующий чат, несуществующему человеку. Как минимум, вам нужно что-то такого формата:
def start(message):
if(type(message)=="dict"):
bot.send_message(message.chat.id, " text " + str(randint(1, 100)) + "%")
else:
bot.send_message(message, " text " + str(randint(1, 100)) + "%")
schedule.every().minute.at(":17").do(start, message="111111111")
while True:
schedule.run_pending()
time.sleep(1)
Если нужно отправлять всего одному человеку, то, как в примере выше, просто добавьте в функцию старт условие, которое проверяет, является ли message словарем или просто idшником, если idшкой формата "2847329841", то сообщение отправляется на чат id, если словарем - на message.chat.id и передавайте id чата как параметр для расписания, если многим - тут нужен списочек и цикл, если многим и заранее неизвестно кому - тут только бд, получать список всех idшек и отправлять им.
А вообще, просто сделайте абсолютно отдельную функцию для расписания, пихать одну и ту же функцию в два логически разных действия довольно странно, особенно странно это будет, когда вам понадобится добавить в старт побольше текста