Personally I use Nextcloud, but as you want local only, I have used Thunderbird. It’s fine. Cross platform, open source, remote to local sync. Basically, it ticks all the boxes for a calendar/agenda.
You might also take a look at this list: https://github.com/awesome-selfhosted/awesome-selfhosted#calendar--contacts
I currently use Jellyfin to stream my music collection. It’s all stored on my NAS and I can give access to whomever I like. Downside is that the iOS music client, FinAmp, is… not pretty. It’s functional, but not great. I understand the player situation to be a bit better on the Android side.