Respondiendo a la última cuestión, evidentemente puedes añadir o quitar funcionalidad a la app mediante actualizaciones.
Sobre la mejor forma, depende...
- ¿Los eventos a recordar son los mismos para todos los usuarios de la app o cada usuario tiene eventos distintos?
- ¿Los eventos cada cuánto se actualizan? No es lo mismo que tengas un calendario anual ya definido a que cada día publiques eventos nuevos o hagas cambios.
Es posible que te baste con un servidor que almacene información de próximos eventos en JSON por ejemplo. De forma periódica (cada día, cada semana...) la app hace una petición a ese fichero. La notificación la haces en local programando la notificación para la hora que quieras.