In your event form, you should send to the server a hidden input witch will contain client's timezone offset. You can get it via Javascript's Date.getTimezoneOffset() method (it gives you offset in minutes between UTC and users's local time).
If you can't do that, you can save user's local timezone into db or ask it in your event form.
Then, in your INSERT or UPDATE query, you can use DATE_ADD('2012-12-13 19:41:00', [user offset] MINUTE) to convert timestamp. You can also do it in php, or client-side when submitting form...
For example in PHP :
strtotime($event_date);
gives you the date's Unix timestamp (so, in seconds). To convert it into another timezone, according you get the offset in minutes with javascript method, you can do :
$dbTimestamp = strtotime($event_date) + $_POST['offsetInMinutes']/60;
If you get the offset in this form : '+2:00' or '-6:00', you can get offset in hours using a regular expression :
preg_match('/(.*)\:00/', '+2:00', $match)
will set '+2' into $match[1]