I've tested this over several days, checking the script against actual travel times and it seems to be reliable. Everything is based on an initial time I recorded when the balloon left Lang.
Whenever the server resets I will probably need to enter in a new base time. All times in your local timezone.
Current Time
Base Lang Depart
Base Riss Depart
Stops at Lang
Stops at Riss
Next Lang Arrive
Next Lang Depart
Next Riss Arrive
Next Riss Depart