The only way to query SharePoint for Recurrence Data using Client OM is by using the GetListItems Method from the List WebService (/_vti_bin/lists.asmx). The XML passed into the WebService can handle QueryOptions and we can use this to specify if ExpandRecurrence should be true. The Soap XML looks like this:
This example checks if there are events overlapping with <Today />. I found that it's best to check with tags like <Today/>. <Week/>, <Month/> and <Year/> instead of using UTC Dates. Notice the <queryOptions/> wrapper passing the Options. Building regular CAML XML using the inner <QueryOptions/> tag didn't work unfortunately. Both <ExpandRecurrence/> as <CalendarDate/> are mandatory in order for this query to work.
Tip: When using Client OM to process SharePoint data requests it's best practice to specify as much properties as possible. Specifying <ViewFields/> will only return these fields instead of all possible fields that come with an Item. If you know the maximum amount of results specifying <RowLimit/> also helps to improve the performance on your Query.