How do I have an mp3 play as a calendar alert sound on my MacBook? I’d like to have a loud, long music clip of my choice play for a calendar alert. I can cause the alert to be other/open a file but if I choose an mp3, I find that QT launches but does not start playing. It isn’t helpful to see a QT window pop up at alert time; I need to to Play The Song.
I find that the calendar alert sounds are short, weak, non-repetitive little noises. If I’m away from my computer, I’ll miss the sound entirely.
—–
Ken Jones
So when you tell the Calendar alert to open the file, it is doing just that, opening the file. Playing the file would be another step. So that is why it isn't working.
You'll need to use Automator to build something very simple to play a sound in one step. You could just have a series of Automator actions that select a single song from your Music App Library and play that. But if you want it to be a file, then you can do it a number of ways.
The first that comes to mind is to simply use a shell script. So create a new Automator document of the type "Calendar Alarm" and then add the action "Run Shell Script" to it.
The code is just one line. The command "afplay" followed by the path to the sound file. You can just drag and drop the file directly into the shell script after typing "afplay" and a space and it will insert the path. So it would be something like this:
afplay /Users/gary/Documents/Alarm\ Sounds/alarm.mp3
Test it in Automator. Then save. It will then create a Calendar event which you can alter. You can also duplicate this event for future use.
If you like, you can create this as an "Application" instead of a "Calendar Alarm." That makes it easier to then set it as an alarm for other events, by just selecting the .app file as the one to open for the alarm.
I should point out that running automations from the calendar app can be very unreliable if the calendar you're adding it to is synced via your iCloud account since after about macOS 10.6 (in my experience). I use a number of automations from the calendar app and the only way to make them run predictably/reliably is to add them to a local calendar (i.e. "on my Mac"). But recent-ish iCloud updates started synching these local calendars. I have not yet seen whether this could affect automations...