Da quello che hai descritto le tre tabelle sembrerebbero bastare, al netto delle relazione tra tali tabelle. In particolare io vedrei
A) relazione 1 a molti tra il cliente e l'agenda(cioè un cliente può avere più agende ma un agenda può essere di un solo cliente)
B) relazione 1 a molti tra agenda e evento (stesso principio di prima)
C) se gli eventi devono essere condivisi allora deve esserci una relazione Molti a Molti tra evento e cliente(cioè un evento può essere condiviso con più clienti e ad un cliente si possono condividere più eventi)
Non so come debba essere poi la logica applicativa ma un'altra opzione potrebbe essere che un cliente può condividere l'evento solo con altri clienti che conosce e quindi servirebbe una relazione riflessiva (molti a molti) sulla tabella cliente per definire chi conosce chi.
Ti ricordo che le relazione molti a molti (many to many) si fanno con una tabella di relazione e quindi alle tre tabelle iniziali devi sommare le tabelle di relazione necessarie (un esempio potrebbe essere CondivisioneEvento che contiene l'id dell'evento e del cliente al quale è stato condiviso).
Uno schemino potrebbe essere questo