iCloud and iPhone Calendar have different timezones
Even though the timezone was set correctly on a Mac, an iPhone and in iCloud settings, syncing across devices has always been off by a couple of hours for me.

Turns out, the time zone, though specified, was disabled for Calendar.

To fix this, click the gear icon in the upper right corner and choose Preferences:



Go to Advanced and make sure the first checkbox is ticked.



Click Save and enjoy your timezone.