If you use millis() with unsigned long variables and do the timing like this
if (millis() - startTime >= period)
then you can have a period of up to 4,294,967,295 milliseconds which is just over 49 days, but don't expect it to be accurate. I can't think of a way to synch millis() to a RTC exactly. You could perhaps use the RTC to start the millis() timing period but that seems perverse to me.
Even if you use TimeAlarms to trigger 2 alarms at the same time they won't both actually trigger at exactly the same time. One will trigger before the other and it would be worth you experimenting with the order in which TimeAlarms are triggered. Each alarm is given an internal ID when created and I would expect them to be triggered in the order in which they are created.