Здесь вам не нужно беспокоиться о UTC, так как событие связано с временем и местом, в котором оно происходит. Если кто-то едет с Гавайев в Сан-Франциско на шоу в 8 вечера, это не значит, что шоу начнется для него в 16:00. Таким образом, вы можете хранить обычное время и местоположение, не беспокойтесь о TZ (так как, по-видимому, у полос просто есть форма времени и местоположения) и хранить это в db.
Что касается Rails, все события будут происходить в TZ, в которой он существует, только с этим забавным атрибутом "location", который сообщает читателю, что событие действительно находится на расстоянии 1000 миль. Это означает, что он может делать обычные автоматические преобразования TZ для себя, но читатель не сможет сказать. Это будет просто преобразование во время, введенное группой в первую очередь. 20:00 + «Лос-Анджелес», 10:00 «Талса, ок.»
Единственный недостаток - это то, транслируются ли передачи по Интернету или что-то в этом роде, где место не связано с событием, на котором вы все равно делаете вышеупомянутое, но пусть зритель / потенциальный член аудитории выбирает их собственный TZ (или геолокация их), и приложение должно выполнить преобразование при отображении в представлении.