Este é o php básico. Você simplesmente consultaria o banco de dados para obter os detalhes do evento antes que os cabeçalhos da página fossem escritos e escreveria o html de acordo.
A primeira coisa que eu gostaria de perguntar é se você sabe como se conectar ao seu banco de dados. A partir daí, você consulta com base no valor $_GET['id'] e usa os resultados para preencher seu html.
Sem querer ser rude, mas a própria pergunta sugere que você é novo no PHP, certo? Portanto, para fornecer uma solução que funcione, podemos querer saber até onde você chegou.
Além disso, você pode reescrever suas urls dinâmicas para parecerem estáticas usando o mod_rewrite do apache. Provavelmente é uma coisa de nível iniciante se você estiver interessado em URLs "bonitas".
RESPOSTA MODIFICADA:
Em seu loop, você usaria o id do resultado da consulta (supondo que sua chave primária seja id) ...
while($field = mysql_fetch_array($result)) {
echo "<p class='date'>";
echo $field['month']." ".$field['day'].", ".$field['year'];
echo "</p>";
echo "<h3>";
echo '<a href="/somepage.php?id='.$field['id'].'">'.$field['event_name'].'</a>';
echo "</h3>";
}
Então em somepage.php você usaria o get var id para puxar as informações relevantes...
$result = mysql_query("SELECT * FROM `calendar` WHERE `id` = '".mysql_real_escape_string($_GET['id'])."');
não se esqueça de olhar em mysql_real_escape_string() para limpar as entradas.