hey greg,
One way that I can think of is creating a PHP script, call it garbage_collect.php, that deletes all the voided rows from the mySQl table and assiging a cron job/Scheduled Task to run the script periodically.
Now if ur confused on what the actual code content of the file is, then its pretty easy. Lets say u have all the date information for the scheduled program in the field called pDate as a timestamp.
<?php
mysql_connect($dbhost, $dbuser, $dbpass) or die('Error#1, Please try again.');
mysql_select_db($dbname) or die('Error #2; Please try Again.');
$sql = 'DELETE FROM table_name WHERE pDate < NOW()';
$result = mysql_query($sql) or die('Error #3. ' . mysql_error());
printf ("Records deleted: %d\n", mysql_affected_rows());
?>