Add an onclick to the div and use something similar to (Pardon my naming):
Component
<aura:component description="myProblemComponent" implements="flexipage:availableForAllPageTypes">
<div style="display:inline-block;margin-right:10px" onclick="{!c.openPicker}">
<lightning:icon iconName="utility:event"/>
</div>
<div style="display:inline-block">
<ui:inputDate aura:id="dateInput" class="slds-input" displayDatePicker="false" />
</div>
</aura:component>
Controller
({
openPicker: function(component,event,handler){
var y = component.find("dateInput");
var t = y.getEvent("openPicker");
t.fire();
}
})
shorten code as you see fit
the ui:inputDate
registers an event handler for openPicker
that you can fire
Fire a component event to communicate data to another component. A
component event can be handled by the component that fired the event
or by a component in the containment hierarchy that receives the
event.
https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_component_fire.htm
Although the default component has a cal icon to the right in the input so not sure why it is not showing up in your example
