I just ran your SQL on my server at home and the SQL appears to be good. One thing to remember though.......try to stay away from reserved words for table names, it causes problems.
Just a suggestion but have you tried echoing out the variable to make sure that it is actually a value and not null?
Also, I would try creating a $query variable to set up the actual query.
$query = "CREATE TABLE ".$newTableName." (dates INT(2), event TEXT, description TEXT, wheres TEXT, times TEXT, cost TEXT, ID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (ID))";
$result = mysql_query($query,$link);
where $link is the link identifier.
Note the spaces after TABLE and before (dates...... maybe the concatenation is running those words plus the variable together. Just a thought
Zach