My iMac is running on Big Sur, while my MacBook Pro is on Catalina. I have tried synching the above apps by turning them on in the iCloud section of System Preferences, but this isn't working for the Contacts whereas it does for Calendars. Any ideas on how to get the Contacts synched?
I'm still syncing my iCloud stuff back to at least High Sierra without any noticeable issues, so it should work.... I am assuming it's MBP which isn't getting the Contacts?
Failing that, you might need to log out of your Apple ID on the problem machine and back in. I suggest you remove the contact data off the problem machine as well, if not, this might cause a merging of the contact data (causing a lot of duplications).
Be sure to backup everything if there is a risk of losing your data.
Set up a dummy Calendar event (and a dummy contact?) and check it has not turned up on the other machine. Assuming it has not, log in to iCloud.com and see if they have arrived there. If they have, the fault is with the receiving machine if they have not, it's with the sending machine.
You can even try it the other way round if you wish ;-)