I’ve found that calendar sync to my iOS devices (iPhone 6S & iPad) is pretty slow. I usually have to open / close the TrainerRoad app a couple of times before the calendar fully syncs.
The other thing I’ve noticed is that the lag seems to be related to recently or not I last used the app. That is, the more data that the app has to sync over, the longer it takes to pull all of the workouts over.
I think this is probably because on iOS (I can’t speak for Android) TrainerRoad doesn’t have the capability to refresh when it isn’t running. That is, if you go to Settings → General → Background App Refresh, the TrainerRoad app isn’t listed.