Come noto, il formato file .ICS è un formato di calendario universale utilizzato per memorizzare le informazioni del calendario all'interno di un file di testo.
In questo articolo vedremo come creare una funzione PHP che importerà i dati dal file .ICS e li memorizzerà in un database MySQL.

Nel codice in basso, abbiamo incluso un file di classe php chiamato icalendar.php con classe chiamata iCalendar, che leggerà il file ICS e convertirà i dati in formato Array. Una volta ottenuto l'array di dati, è possibile salvarlo o mostrarlo nella propria pagina web in formato tabulare.
CODICE PHP
<?php
include("includes/connection.php");
include("includes/icalendar.php");
$records = mysqli_num_rows(db_query("select * from events"));
if ($_POST['stage'] == 1) {
$ical = new iCalendar();
$filename = $_FILES['file1']['tmp_name'];
$ical->parse("$filename");
$ical_data = $ical->get_all_data();
$timezone = "{$ical_data['VCALENDAR']['X-WR-TIMEZONE']}";
if (function_exists('date_default_timezone_set'))
date_default_timezone_set($timezone);
$strsql1 = "Insert into events(StartDate,StartTime,EndDate,EndTime,Title,Location,Description) values ";
if (!empty($ical_data['VEVENT'])) {
foreach ($ical_data['VEVENT'] as $key => $data) {
//get StartDate And StartTime
$start_dttimearr = explode('T', $data['DTSTART']);
$StartDate = $start_dttimearr[0];
$startTime = $start_dttimearr[1];
//get EndDate And EndTime
$end_dttimearr = explode('T', $data['DTEND']);
$EndDate = $end_dttimearr[0];
$EndTime = $end_dttimearr[1];
$strsql1.="('".$StartDate."','".$startTime."','".$EndDate."','".$EndTime."','".
$connect->real_escape_string($data['SUMMARY']) . "','".
$connect->real_escape_string($data['LOCATION']). "','".
$connect->real_escape_string($data['DESCRIPTION']) . "')";
$strsql1.=",";
}
$strsql1 = rtrim($strsql1, ',');
db_query($strsql1);
}
header('Location:index.php');
}
if ($_GET['stage'] == "empty") {
db_query(" TRUNCATE events");
header('Location:index.php');
}
?>