**STEP ONE:** Create an "Events" section in Craft and uncheck "Entries in this section have their own URLS". ![enter image description here][1] ---------- **STEP TWO:** Create your listing page and use ".status('pending')" to get future dated entries: {% set entries = craft.entries.section("events").order('postDate').status('pending') %} ---------- **STEP THREE:** In the listing template, you need to manually build the URL to the event's detail page. Something like the following... <a href="/events/{{ entry.slug }}">{{ entry.title }}</a> ---------- **STEP FOUR:** Set up a custom Route to tell Craft what template to load for URLs with this pattern. ![enter image description here][2] ---------- **STEP FIVE:** Code your event's detail page template to grab the entry's slug from the URL and query the DB to get the right entry. {% set slug = craft.request.getSegment(2) %} {% set entry = craft.entries.section("events").slug(slug).status(null).find()%} {% for entry in entry %} <h1>{{ entry.title }}</h1> {% endfor %} *NOTE:* I've set the code sample above to use .status(null) so it will return ANY/ALL events on the detail page including expired ones. That's my preference but change to .status('pending') if you only want future events to show. [1]: https://i.sstatic.net/mYFFP.png [2]: https://i.sstatic.net/6B4iQ.png