If you don't like (or like me, understand ) the chron trigger, you could also use the periodic trigger and start it on the hour (set it to run from 00:00 to 00:00).
Iβm with @vincent_ardern on this. The KM wiki page about the cron trigger even gives the setting you need use for an hourly, on the hour trigger which is @hourly
You used to be able to set this in Preferences. Unfortunately you can only "announce" the time these days, not chime, but if you'd like to be told the time on the hour then System Preferences->Dock & Menu bar->Clock and tick "Announce the time". (Or that's System Prefs->Date & Time->Clock on older OSs).
Many thanks for this @peternlewis!! It works - is there any way of making the sound play at a volume that's a function of the current system settings? (e.g. I want this chime to sound about 50% of what I have the speakers at that point)
Unfortunately, AppleScript can't natively play sounds (AFAIK). But macOS ships with afplay, whose man page is useless but which shows its options with afplay -h.
A quick test shows that to halve the volume you need to 1/10th the value given (where 0 is silent and 1 is 100% of current system volume) -- which I assume is a "decibels are logarithmic" thing, ie
afplay -v 0.1 /System/Library/Sounds/Glass.aiff
...sounds to me like half
afplay -v 1 /System/Library/Sounds/Glass.aiff
...at the same system volume setting.
So something like
...substituting in the path to your "chime" file, could be enough.
fantastic!! many thanks for this - does this clean up after it? (i.e. does this afplay stay open and eat resources/ processes, or does it automatically close/ clean up after the sound is played)