I predominantly use iCloud for calendars and contacts on Mac and iOS, we have quite a few shared home calendars to separate out different things. But I also have Synology Calendars and Contacts setup as additional accounts on both Mac and iOS, sort of a fallback service (not sync'ed).
Since I don't use them much this may be slightly out of date...
Synology Calendars is your CalDAV service. One thing it doesn't do is have subscriptions to web published .ics calendars: you either import the .ics file and have as a static calendar, or you don't have it. I think sharing is supported between DSM users, but don't quote me.
Synology Contacts is the only CardDAV service. The previous issues of munging address fields into a single unlimited (no commas) value have been long resolved. It seems to work. I don't think Apple Contacts groups are respected/work, and I can't remember if you can have multiple address books. Also the Synology Contacts labels may not work fully with Mac/iOS, I can see they are there in the client apps but updates in web/app don't seem to sync across.