Calendar bookings that were once part of a recurring booking are considered separate from the rest of the recurring booking when a single instance is modified. This has repercussions such as the modified instance not being deleted if a user tries to delete every event in the series (which is inconsistent with how Google Calendar functions).
Steps to Reproduce:
1. Add a Calendar portlet to a page.
2. Click on Add Event.
3. Click on the Repeat checkbox. Select "Repeats: Daily" and "Ends: Never" (default settings).
4. Publish the event.
5. Click on an instance of the event, then click Edit.
6. Click on the Publish button (you don't need to make any edits, but you can if you want to).
7. Select Only This Instance.
8. Verify that your request was completed.
9. Exit out of the drop-down menu and click on a different event instance than the one you clicked on in step 5.
10. Select Delete, then select All Events in the Series.
Expected Result: All events in the series are deleted, including the one that you "edited" (this is how Google Calendar behaves).
Actual Result: The event that you "edited" remains on the page.
Reproduced in master: 68dabc9863bbcb22424634f7df6b937f9419f1db
Additional Info: It seems to me as though we need a new column in the calendarbooking table to allow us to link instances of recurring events to the original recurring event that they spawned from. Alternatively, we could make use of the already-existing parentCalendarBookingId column; however, there is currently a unique index for (calendarId, parentCalendarBookingId).