I would not recommend docker-compose for a begginer. As first, one should learn basics, then optionally switch to docker-compose to automate stuff he already know. Also bind mount volumes are a better solution for long term storage than default volumes, since docker will never delete those, and their path in host system is configurable.
Nextcloud is reall nice but if you are using many of its functions,. For just calendar it seem a bit to heavy, isn’t it?