En miles de aplicaciones web tenemos editores de horarios, visualmente son algo como esto:
En TimeTime tenemos esto modelado de la siguiente forma:
const schedule: {
  timezone: 'Europe/Madrid',
  
  workingHours: {
    mon: [{ start: '09:00', end: '13:00' }, { start: '15:00', end: '18:00' }],
    tue: [{ start: '09:00', end: '13:00' }, { start: '15:00', end: '18:00' }],
    wed: [{ start: '09:00', end: '13:00' }, { start: '15:00', end: '18:00' }],
    thu: [{ start: '09:00', end: '13:00' }, { start: '15:00', end: '18:00' }],
    fri: [{ start: '09:00', end: '13:00' }, { start: '15:00', end: '17:00' }],
    sat: [{ start: '10:00', end: '14:00' }],
    sun: [], // Domingo libre
  }
}Sin embargo este formato tiene una serie de problemas. La más evidente es que es complicado modelar horarios que no cierran a medianoche. Por ejemplo un bar que abra de 10:30 a 03:00.
La pregunta es muy sencilla, (la solución quizá no)
¿Qué formato se te ocurre para modelar horarios?
👉 Ten en cuenta los diferentes escenarios que se puedan dar.
👉 Los autores de las mejores respuestas recibirán entradas para la http://jsconf.es/ por cortesía de TimeTime.
👉 Puedes participar contestando a este gist, o por twitter, citando a @iagolast o a @odin_delrio
👉 No intentes copiar de nuestra API. Está mal y tenemos que actualizarla 

Si seguimos con el mantra de no reinventar la rueda, openstreetmap tambien tiene su propia especificacion https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification
La version que mejor funciona es la version en JS, podes comunicar la lista de reglas al FE sin problema