Ola!
Este é un post para tratar de encarrilar un pouco o deseño do que sería a parte do calendario que iría vinculado aos eventos, ou aos lugares, dalgún xeito.
Na miña percepción, os lugares poñerían á súa disposición "ocos" dispoñibles nos que realizar eventos, e eses ocos gardan certas similitudes cun evento de calendario de CalDAV.
Agora, o estándar CalDAV é un peñazo horrible de ler, definido no RFC 4791 e RFC 6638; pode resumirse en:
- É unha extensión de WebDAV
- Utiliza iCalendar (RFC 5545) como formato de intercambio de ficheiros
Esas cousas dannos un pouco igual, o que nos interesa é saber cál podería ser unha boa idea para modelar un servidor de calendario (porqué? porque iso danos información de como modelar un calendario con eventos recurrentes na base de datos).
Para iso, temos unha implementación de referencia que é Software Libre baixo a Apache License 2.0, deseñada por Apple (un dos impulsores do estándar), en http://calendarserver.org/
A última versión do código pode verse neste repositorio SVN: https://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-8.1/
É un proxecto en Python que emprega Twisted como framework web Aquí o interesante estaría en atopar o modelo de datos disto, e como se persiste en disco a información.
Ata aquí por hoxe. Se tedes un momento para botarlle un ollo, respondede ao tema 
cc/ @asincrono @castrinho8 @tod