Another option is to avoid the CAML and use calendar views. According to this blog post, you can create a view that shows recurring events and displays them in chronological order. Then at the end of the view definition, you can limit the view to show the next 2 items.
To create the view, go to the calendar and follow these steps:
- Ribbon -> Calendar -> Create View
- Select "Standard View, With expanded Recurring Events"
- Name the View and arrange the Columns - I put Start Time near the front.
- At the bottom under Item Limit, select 2
The View will display like so:
This view can be overlaid onto another calendar or pulled into another site using a Web Part. This solution is simpler and out of the box and is easier to maintain than a coded solution involving CAML and CSOM.