<?
//Edit these
$dbhost = "localhost";
$dbuser = "username";
$dbpass = "password";
$database = "xenforo";
$domain = "yourdomain.com";
$calname = "Calendar Name";
$caldesc = "Calendar Description";
$timezone = "Europe/London"; //This also needs to be set in iCalcreator.class.php
$dbc = new mysqli($dbhost, $dbuser, $dbpass, $database);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$q = ("
SELECT xf_post.thread_id,xf_post.message,EWRatendo_events.thread_id,EWRatendo_events.event_strtime,EWRatendo_events.event_endtime,EWRatendo_events.event_venue,EWRatendo_events.event_title
FROM EWRatendo_events
INNER JOIN xf_post ON xf_post.thread_id = EWRatendo_events.thread_id
WHERE EWRatendo_events.event_state = 'visible' AND xf_post.position = 0 AND EWRatendo_events.event_endtime > UNIX_TIMESTAMP()
");
'iCalcreator.class.php' );
if ($result = $dbc->query($q)){
$config = array( 'unique_id' => $domian );
// set Your unique id
$v = new vcalendar( $config );
// create a new calendar instance
$v->setProperty( 'method', 'PUBLISH' );
// required of some calendar software
$v->setProperty( "x-wr-calname", $calname );
// required of some calendar software
$v->setProperty( "X-WR-CALDESC", $caldesc );
// required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/London" );
while ($row = $result->fetch_assoc()){
$vevent = & $v->newComponent( 'vevent' );
$year = date('Y',$row['event_strtime']);
$month = date('m',$row['event_strtime']);
$day = date('d',$row['event_strtime']);
$hour = date('H',$row['event_strtime']);
$min = date('i',$row['event_strtime']);
$sec = date('s',$row['event_strtime']);
$start = array( 'year'=>$year, 'month'=>$month, 'day'=>$day, 'hour'=>$hour, 'min'=>$min, 'sec'=>$sec );
$vevent->setProperty( 'dtstart', $start);
$year = date('Y',$row['event_endtime']);
$month = date('m',$row['event_endtime']);
$day = date('d',$row['event_endtime']);
$hour = date('H',$row['event_endtime']);
$min = date('i',$row['event_endtime']);
$sec = date('s',$row['event_endtime']);
$end = array( 'year'=>$year, 'month'=>$month, 'day'=>$day, 'hour'=>$hour, 'min'=>$min, 'sec'=>$sec );
$vevent->setProperty( 'dtend', $end );
$vevent->setProperty( 'LOCATION', $row['event_venue'] );
$vevent->setProperty( 'summary', $row['event_title'] );
$vevent->setProperty( 'description', $row['message'] );
}
}
$v->returnCalendar();
?>