maiorano84 wrote a fairly comprehensive guide to setting up the stuff you need, Rather than relying on plugins though, I prefer to show you how to write a plugin to register the custom post type and taxonomy. To that effect, I wrote a little plugin that should do everything you need and it has plenty of comments and links to the docs so that you can understand the Why of things.
Code
https://github.com/fyaconiello/WP_Cities_Events
This plugin does several things
- Creates a custom post type Event
- Creates a custom taxonomy City
- Adds custom metaboxes to Event
- Adds City taxonomy to Event
This plugin does not require any additional plugins to be installed, it is dependency free and only uses WP core.
URLS
As far as getting the correct URL Structure, I would suggest you read this thoroughly: http://codex.wordpress.org/Using_Permalinks.
I do not understand the structure you want
CITY is a single term w/i the taxonomy *cities*
EVENT is the post single
SITE_URL/cities/CITY
would yield a page of all EVENT posts in that CITY- you need a url like:
SITE_URL/cities/CITY/EVENT
to read a specific event in a specific city
EDIT on how to urls:
In your Settings -> Permalinks
administration panel select: "Post name" and save.
Then, go to your Ce Events -> Cities
admin screen.
hover over one of your terms (in my case new york city) and click view.
it should open up that term(city)'s list view and the url structure looks like so: http://wp.local/city/new-york-city/
if you need city
to read cities
, modify line 102 of the main plugin file i shared with you:
'rewrite' => array('slug' => 'city'),