giovedì 6 giugno 2019

Creare un ICS Calendar in ASP o PHP

Oggi farò una guida multi language, che spiega come creare un file ics calendar, ovvero quel tipo di file che i vari client di posta, quali outlook ad esempio, interpretano come un memo da mettere in agenda.
I file ics sono molto comodi per salvarsi nel proprio calendario personale i dati di un appuntamento, in modo tale da potersi anche far avvisare poco prima dell'incontro con una notifica su cellulare.
Un buon sito web che si rispetti dunque, che sia sviluppato in asp o php, a seguito dell'iscrizione ad un evento da la possibilità di creare un file ics da scaricare o da mandare in automatico via email all'iscritto.
Tale file poi, una volta aperto fa partire, ad esempio, outlook in automatico, il quale chiederà all'utente se vuole salvarsi i dati dell'appuntamento presenti nel file calendar, facilitando di fatto la vita a chi si iscrive ad un evento, che non deve scriversi a mano il titolo dell'appuntamento, la data e ora, ed il luogo dell'incontro.

Fatta questa doverosa premessa, vediamo subito come creare un file ics con asp e php.


Come creare un ICS Calendar in ASP


La sintassi da utilizzare per creare un file calendar in asp classic (e non) è la seguente:

<%
response.buffer=true
Response.ContentType = "text/calendar"
response.AddHeader"content-disposition","inline;filename=appuntamento.ics"
ris="BEGIN:VCALENDAR"
ris=ris&VBcrlf&"VERSION:2.0"
ris=ris&VBcrlf&"BEGIN:VEVENT"
ris=ris&VBcrlf&"DTSTART;TZID="&stato&"/"&citta&":"&dataorainizioo
ris=ris&VBcrlf&"DTEND;TZID=Italia/Milano:"&dataorafine
ris=ris&VBcrlf&"SUMMARY:"&titolo
ris=ris&VBcrlf&"LOCATION:"&luogo
ris=ris&VBcrlf&"DESCRIPTION:"&titolo&VBcrlf&descrizione
ris=ris&VBcrlf&"PRIORITY:3"
ris=ris&VBcrlf&"END:VEVENT"
ris=ris&VBcrlf&"END:VCALENDAR"
response.write(ris)
%>


Direi che questo script non necessita di particolari spiegazioni, in quanto basterà sostituire dinamicamente le varie variabili quali luogo, ora, ecc... per avere una pagina asp che una volta chiamata consentirà al visitatore di scaricare un file calendar ics.


Come creare un file Calendar ics in PHP


Per poter creare un file ics in php, facendolo scaricare dall'utente tramite apposito link, basta utilizzare il seguente script:

<?
header('Content-Type: text/csv; text/calendar');
header('Content-Disposition: attachment; filename=calendar.ics');
$dstartc=date("Y", strtotime($data_inizio)).date("m", strtotime($data_inizio)).date("d", strtotime($data_inizio))."T".date("H", strtotime($data_inizio)).date("i", strtotime($data_inizio))."00";
$dendc=date("Y", strtotime($data_fine)).date("m", strtotime($data_fine)).date("d", strtotime($data_fine))."T".date("H", strtotime($data_fine)).date("i", strtotime($data_fine))."00";
$ris="BEGIN:VCALENDAR\n";
$ris.="VERSION:2.0\n";
$ris.="BEGIN:VEVENT\n";
$ris.="DTSTART;TZID=".$stato."/".$citta.":".$dstartc."\n";
$ris.="DTEND;TZID=".$stato."/".$citta.":".$dendc."\n";
$ris.="SUMMARY:".$titolo."\n";
if ($luogo!="") $ris.="LOCATION:".$luogo."\n";
$ris.="DESCRIPTION:".$titolo."\n".$descrizione."\n";
$ris.="PRIORITY:3\n";
$ris.="END:VEVENT\n";
$ris.="END:VCALENDAR\n";
echo $ris;
?>


Come per la versione asp, si produrrà un output con una sintassi prestabilita standard (che non è il caso di analizzare e va presa per buona), alla quale dovremo passare le varie variabili che compongono i dati del nostro appuntamento (luogo, data, titolo evento, ecc...).

Nello script d'esempio viene anche illustrato come l'ics si aspetta che sia formattata la data, sintassi che ovviamente vale anche per la versione asp.

Bene, è tutto.
Grazie a queste poche righe di codice, che potrete ovviamente standardizzare in una funzione, potrete creare file ics calendar tramite linguaggio di programmazione php o asp, ed inserire così una comoda funzionalità all'interno dei vostri siti internet.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon