Někdy se stane že chcete abyste na něco nezapoměli. A ten kdo to má zajistit je stroj nebo aplikace. Ale obvyklé remindery obvykle nefungují, pokud je človek zahrabanej v Outlooku, který mu řídí celý život. Pro podobné případy je dobré si deadliny nastavit přímo do kalendáře v outlooku. Takže jak to udělat?
Buď odkazem, na který se klikne a uživatel si stáhne soubor, který když si v outlooku otevře tak se mu otevře okno meetingu a on to může potvrdit. To je ale takový blbý.
Takže moje ideální řešení je to, že ten meeting přijde na mail a uživatel si ho otevře a potvrdí a má ho tam 🙂
Jde to jednoduše, detaily jsou ve scriptu viz níže. jediný co blbne je ten čas, protože zatim mi to odesílá v nějakým Kanada-USA čase, takže to se asi musí ještě nejak poštelovat:
function sendCal($dtstart,$dtend,$loc,$summary,$from,$to,$subject) {
$vcal = "BEGIN:VCALENDAR\r\n";
$vcal .= "VERSION:2.0\r\n";
$vcal .= "PRODID:-//CompanyName//ProductName//EN\r\n";
$vcal .= "METHOD:REQUEST\r\n";
$vcal .= "BEGIN:VEVENT\r\n";
$vcal .= "ATTENDEE;CN=\"Attendee1Name\";ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:Att1Mail@mail.com\r\n";
$vcal .= "ATTENDEE;CN=\"Attendee2Name\";ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:Att2Mail@mail.com\r\n";
$vcal .= "UID:".date('Ymd').'T'.date('His')."-".rand()."-domain.com\r\n";
$vcal .= "DTSTAMP:".date('Ymd').'T'.date('His')."\r\n";
$vcal .= "DTSTART:$dtstart\r\n";
$vcal .= "DTEND:$dtend\r\n";
if ($loc != "") $vcal .= "LOCATION:$loc\r\n";
$vcal .= "SUMMARY:$summary\r\n";
$vcal .= "BEGIN:VALARM\r\n";
$vcal .= "TRIGGER:-PT15M\r\n";
$vcal .= "ACTION:DISPLAY\r\n";
$vcal .= "DESCRIPTION:Reminder\r\n";
$vcal .= "END:VALARM\r\n";
$vcal .= "END:VEVENT\r\n";
$vcal .= "END:VCALENDAR\r\n";
$headers = "From: $from\r\nReply-To: $from";
$headers .= "\r\nMIME-version: 1.0\r\nContent-Type: text/calendar; method=REQUEST; charset=\"iso-8859-1\"";
$headers .= "\r\nContent-Transfer-Encoding: 7bit\r\nX-Mailer: Microsoft Office Outlook 12.0";
mail($to, $subject, $vcal, $headers);
}
$dtstart="20121010T120000";
$dtend="20121010T140000";
$loc="";
$summary="summar";
$from="jan.suda@h20.cz";
$to="jan.suda@groupm.com";
$subject="here is da meeting";
sendCal($dtstart,$dtend,$loc,$summary,$from,$to,$subject);
?>
Informace jsem sbíral zde:
http://www.terminally-incoherent.com/blog/2008/04/14/generate-outlook-calendar-events-with-php-and-icalendar/
http://www.webdeveloper.com/forum/showthread.php?201539-Send-Outlook-Appointment-via-eMail-Using-PHP