С интерфейсом вида:
//Вход:
auto time_point_now = now();
//Что собственно требуется от либы:
//кронподобный синтаксис - необязательно, главное что бы расписания можно было задавать с той же гибкостью
auto schedule = make_schedule("* 5 * * *", "Europe/Berline");
auto time_point = schedule.next(time_point_now);
//Выход: таймштамп первого совпадения с правилом описанным в расписании
timed_wait_until(time_point);
Можно выдрать из bistro, но очень не охота - много чего оно за собой тянет, да и бустовская политика работы с таймзонами не заводит.
Можно навилосипедить, но вдруг есть чё.