RE: iCal Attachment Format ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I had to do this for a party page I created... Here's the splash of code I
use (please keep in mind I wrote this like 5 years ago, so it's pretty
ass-code, but it works and I don't care enough about it to clean it up):

    if (isset($_GET['id']) && intval($_GET['id'] > 0))
    {
        $sql = "SELECT *,
                        UNIX_TIMESTAMP(party_date) AS start,
                        UNIX_TIMESTAMP(DATE_ADD(party_date, INTERVAL 3
HOUR)) AS end,
                        UNIX_TIMESTAMP(DATE_ADD(party_date, INTERVAL 7
HOUR)) AS GMTstart,
                        UNIX_TIMESTAMP(DATE_ADD(DATE_ADD(party_date,
INTERVAL 3 HOUR), INTERVAL 7 HOUR)) AS GMTend,
                        UNIX_TIMESTAMP(DATE_ADD(NOW(), INTERVAL 7 HOUR)) AS
GMTnow
                FROM    party_table
                WHERE   party_id = ".intval($_GET['id'])." LIMIT 1";
        //echo $sql;
        $pth = mysql_query($sql, $db);
        if ($pth && mysql_num_rows($pth) == 1)
        {
            $prow = mysql_fetch_array($pth,MYSQL_ASSOC);
            //http://www.phpbuilder.com/columns/chow20021007.php3?page=2
            //http://www.sitellite.org/docs/Date/vCal.html
            //http://www.scheduleworld.com/outlookInteroperability.html
            //http://www.ietf.org/rfc/rfc2445.txt
            //http://www.linuxjournal.com/article/8159
            //header("Content-Type: text/x-vCalendar");
            $Filename = "Event [" . $_GET['id'] . "].ics";
            header("Content-Type: text/Calendar");
            header("Content-Disposition: inline; filename=".$Filename);
            //$DescDump = str_replace("\r", "=0D=0A",
$prow['party_description']);
            if ($prow['party_other_url'])
                $body .= "Other URL: ".$prow['party_other_url']."\r\n";
            $body .= "\r\n".$prow['party_description'];
            $DescDump =
str_replace(array("\r\n","\r",'<p>','<P>','<BR>','<br>'), "\\n", $body);
            $vCalStart = date("Ymd\THi00", $prow['GMTstart']);
            $vCalEnd = date("Ymd\THi00", $prow['GMTend']);
            $vCalNow = date("Ymd\THi00", $prow['GMTnow']);
?>
BEGIN:VCALENDAR
VERSION:2.0
PRODID:RBC Web Calendar
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:<?= $vCalStart ?>Z
DTEND:<?= $vCalEnd ?>Z
LOCATION:<?php echo $prow['party_location']."\n" ?>
TRANSP:OPAQUE
SEQUENCE:0
UID:1234567890<?= rand(1111111111,9999999999); ?>RBC
DTSTAMP:<?= $vCalNow ?>Z
DESCRIPTION:<?php echo $DescDump."\n"; ?>
SUMMARY:<?php echo $prow['party_name']."\n"; ?>
PRIORITY:1
X-MICROSOFT-CDO-IMPORTANCE:2
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT60M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
<?php
            exit;
        }
        else
        if (!$pth) {    echo "<FONT
COLOR=#FF0000>Calendar<P><PRE>".mysql_errno().":
".mysql_error()."<BR></PRE></FONT>\n"; exit;   }
    } //if vcal 

> -----Original Message-----
> From: Bastien Koert [mailto:phpster@xxxxxxxxx] 
> Sent: Tuesday, June 23, 2009 12:31 PM
> To: Jason Paschal
> Cc: php-general@xxxxxxxxxxxxx
> Subject: Re:  iCal Attachment Format ?
> 
> On Tue, Jun 23, 2009 at 3:09 PM, Jason 
> Paschal<jpaschal@xxxxxxxxx> wrote:
> > Hi all!
> >
> > Built an appointment scheduling app, but now the client 
> wants it to send out
> > an email with the appt attached in iCal format.  I've never 
> dealt with
> > anything iCal before.
> >
> > I searched around a bit, and know that there iCal php 
> scripts available, but
> > I don't need a bunch of rigamarole, just need to create the 
> attachment and
> > send it on the fly.
> >
> > But I'm having trouble finding the format.  Anyone know 
> what this looks
> > like?  Or can point me to a resource?
> >
> > Rather not scrounge thru someone else's code, or have to 
> install something
> > just to run it for the format...if I can help it. :)
> >
> > Thank you,
> >
> > Jason
> >
> 
> STFW  like at http://en.wikipedia.org/wiki/ICalendar
> 
> -- 
> 
> Bastien
> 
> Cat, the other other white meat
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux