‘Simple’ Reservation System

Your idea for two custom post types is a good start, but you may wish to consider using taxonomies for the activities and the custom post type for the location.

To determine whether the activity needs to be reserved or not could be done by using a custom field and a check on the value with get_post_meta().

That should be enough to get you started.