I feel like Google is making this hard, but then I'm also not sure what calendar protocols limitations are exactly. CalDav seemed fine to me, but what do I know.
Bonus points for Linux application recommendations.
It works easiest if you are permitted to let your personal account see and manage your work account calendar and vice versa. For read-only access, Google has icalendar urls you can sync against, and you can subscribe to icalendar urls with Google calendar (although Google ignores the refresh period hints, afaik, so you get updates about once a day).
I think you can caldav to Google as well, at least I saw documentation for that recently.