I will show you how to do it when a new event is created. You must in addition provide for when an event is updated (by deleting the scheduled event and rescheduling it) and when an event is deleted (by deleting the scheduled event). If an event does not exist and you delete it it won't throw an error, so it is acceptable to do it.
You need the following additional modules installed: Views and Views Bulk Operations, reason being you will use views to obtain the list of emails and VBO is needed to interface it with Rules.
STEP 1
Start by adding a view (don't select page or block in wizard as we only want a master) of type 'Users'. Remove the sort and pager as it is not necessary.
Add a relationship 'A bridge to the Content entity that is referencing User via field_staff' and make it required.
Add a contextual filter of nid: 'The node ID.', make sure the relationship created earlier is selected, and Hide view when filter value is not available.
Add a field 'Bulk operations: User' and accept the default. This is the important field and technically the only field needed.
Test the view by typing a known node id in the preview field.
STEP 2
Create a Rules component of type 'Action Set' and call it 'Send Notification'. Add a Variable of 'Entity: Node', give it a label and machine name of 'node'.
Add an action to this component: 'Load a list of entity object from a VBO View'. Select the view you created earlier. Set its argument to '[node:nid]' and leave the provide variables at default. Note the variable name of the List of entities: entity_list.
Add a loop to this action, and select 'entity-list' as the Data Selector. Note the default name of the current list item: list_item.
Add an action to the loop (note: add it to the loop and not the component) of 'System: Send Mail'. In the to value select '[list-item:mail]'. Fill the rest out the way you want.
STEP 3
Add a new rule and call it 'On new event', to react on 'Node: After saving new content'. Restrict it to type 'event'.
Add an action to this rule, 'Rules schduler: schedule component evaluation', and select the 'send notification' component you created earlier.
Set the evaluation date to node:field-event-date.
Add an offset: -1 days
Add an identifier of 'node-[node:nid]-event' and note its pattern as you will be using it to delete events.
Select the Node as 'node'
That should be the gist of it.