I had a first answer, but this is an alternative...
Use an automation app like MacroDroid
Another approach I use: set up an automation app to detect when events start, and set off an alarm. Currently I do this to remind me only in the mornings of my first meeting, but you could have it manage EVERY meeting. Here's a rough idea of a possible setup:
- Use MacroDroid
- Trigger on meetings 5 minutes before they begin.
- Exclude all-day events
- With MacroDroid you would need to duplicate this trigger for each calendar you care about, since a calendar trigger can't target multiple calendars
- Constraint: only during working hours plus buffer (7:00am to 5:30pm)
- Or, only during waking hours (7am to 10pm) if you target personal calendars. Note, you can add constraints to specific triggers, so you can do different time ranges per calendar
- Action: Check variable with event title [calendar_title]. Abort if it contains words/phrases like "out of office/OOO/paid time off/PTO").
- This would be an abort macro action with an action-level constraint based on variable pattern matching
- Action: Set an alarm 1 minute in the future with title set to variable [calendar_title]
- The drawback of this approach is that it doesn't allow for custom times/reminders. You could probably solve this by triggering on google calendar reminder notifications or parsing some text in a calendar description, but I haven't looked into how to do this yet.
- You might set the alarm volume based location/wifi/bluetooth conditions. For example,
- if your bluetooth noise-canceling headset is on, full volume.
- If in the office, start with a loooong sequence of vibrations, then start with a low alarm volume.
- (You might wish to prevent an alarm from going off in the middle of a meeting, or too loudly in cubicleville. If you have overlapping, conflicting, or back-to-back meetings, this might need careful refinement and testing)
Also check out my alternate answer for some apps that might get you 90% of the way there.