Sobre el punto 1:
Cuando dices los "nuevos eventos", ¿cómo sabe la aplicación cuáles son?, quiero decir, ¿a partir de que fecha son nuevos? ¿Habrá en el servidor un archivo para cada actualización y la app se descargará todos los que son superiores a la fecha de la base de datos actual?
Este sistema puede servir, pero es lento si en la aplicación hace mucho que no actualizas, y también le quita inmediatez al funcionamiento de la app, y hoy en día nadie está dispuesto a esperar más de uno o dos segundos a que una app/web muestre los resultados.
También hay que tener en cuenta que esto también requiere que tengas disponible y actualices de vez en cuando una versión descargable completa de la base de datos, y eso también es trabajo de mantenimiento.
Y supongo que no valoras la opción de que los usuarios puedan aportar eventos, ya que eso aún complicaría más el sistema.
Sobre el punto 2:
Si, es como funciona cualquier web/app moderna. ¿Quieres ver los datos del sábado? pues los descargas al momento y listo. Instantáneo, apenas consume datos.
Sobre tener un presupuesto de 0€:
La opción 1, si luego quisieras pasar a la opción 2, tendrás que desechar prácticamente todo el código de gestión de los datos y el de las actualizaciones, ya que en ese aspecto la aplicación funcionará de forma radicalmente distinta.
Otra opción con presupuesto casi cero y haciendo directamente la opción 2, es coger un ordenador antiguo que no uses (o una raspberry Pi o similar), instalarle un LAMP y dejarlo en casa/trabajo funcionando 24/7 con los puertos necesarios (80) abiertos en el router y usar un DNS dinámico gratuito (por ejemplo DuckDNS) para que la app pueda acceder aunque te cambien la IP.
De esta forma puedes hacer la aplicación "como tiene que ser" y si la cosa funciona y puedes contratar un alojamiento profesional, sólo tienes que copiar los archivos y bases de datos, y cambiar el DNS para que la app apunte al nuevo alojamiento.
Eso es lo que yo haría.