Нет встроенного способа сделать это.
Если точное время суток не имеет значения *, то один из подходов - запланировать запуск задачи каждые 24 часа и проверить,текущее время - первый день месяца, и, если это так, выполните задание.
(* Оно немного сместится, когда начнется или закончится летнее время, или будут добавлены дополнительные секунды, но это может и не бытьзначительно.)
Более мощный (но более сложный подход) состоит в том, чтобы установить таймер на один раз, в соответствующее время 1-го числа следующего месяца.Затем, выполнив задание, он может перепланировать себя на 1-е число следующего месяца.(Вам нужно позаботиться о том, чтобы это всегда было так, даже если задача вызвала исключение.)
Вы можете поместить все это в собственный класс таймера, чтобы отделить его от бизнес-логики, которую вы используете.хочу запустить.
Примеры в Java (которые будут переводиться непосредственно в Kotlin / JVM), см. ответы на эти вопросы .