What was going on
Embedding a Calendly inline widget inside a react-native-webview with source={{ uri: calendlyUrl }} only delivered the calendly.page_height event; calendly.event_scheduled, calendly.date_and_time_selected and the other events never arrived. Calendly posts the non-height events only when window.parent !== window, and with a direct URI load the webview has no parent frame, so those messages are skipped. Switching the WebView source to an HTML string containing an iframe (with embed_domain and embed_type=Inline on the URL) restored all events.
What fixed it
Load the widget through an HTML string containing an iframe instead of a bare URI: source={{ html: '[iframe src="https://calendly.com/your-event?embed_domain=1&embed_type=Inline" width="100%" height="100%"][/iframe]' }}. Add a message-forwarding script in the HTML (window.addEventListener('message', e => window.ReactNativeWebView.postMessage(JSON.stringify(e.data)))) so the events reach the React Native onMessage handler. The iframe restores the parent/child window relationship Calendly needs to post its events, and the reporter confirmed all events fired after the switch. Source: https://github.com/tcampb/react-calendly/issues/190