Eric,
You're right to use a parallel gateway to merge the incoming event and the time event and wait for both. But your flow is not valid because you can't start a flow at an intermediate event and both your "Receive A" and "Every 30 minutes" are intermediate events. Assuming you correct this to make the "Receive A" have a sequence flow from "Send A" to "Receive A" and made "Every 30 minutes" a start event the flow would be technically correct. But then it would mean that the timer begins as soon as the start event triggers and before the "Do something" activity begins. If I understand you correctly this isn't what you are looking for.
If you really want this to be a single flow with a step that waits for the timer and the incoming message event you'll need to make a few changes. Because you want the time and the wait for the incoming message to both be active in parallel you'll want to add another parallel gateway with an incoming flow from "Send A". Next you'll want an outgoing flow from that new gateway to both "Receive A" and "Every 30 minutes". That way you'll be listening for both the incoming message and running the timer simultaneously and the second parallel gateway will wait for both to finish.
I hope this helps!