Sho' 'nuff! I give the following disclaimers and hints: * It's not very neat, it's not OOP. * It's functional and that's where I'm heading for now. (Working proof of concept.) * There is a udf at cflib.org that helped me with the DESCRIPTION output. However, it didn't have all the functionality I was needed at the time. * It sends only to Exchange-based mailboxes. * It sends meeting requests rather than appointment items. Not a huge difference, though. * There is a weird problem with the ORGANIZER value. For some reason, I couldn't always specify an existing email address. Weirder, though, is that I specified a non-existant email address and it *always* works. This only caused problems when accepting the event using OWA. It's Microsoft; go figure. * It's not Ray Camden-proof yet. * I call this page by clicking on an image next to an event subject within a list of events. * Watch line-wrapping in the DESCRIPTION value. (Every line should start with UPPER-CASE text.) * The two mail-parts are required for Outlook to properly show the description before and after accepting the event into your calendar. Outlook and OWA are just a bit different, but this fixed the problem of inconsistency.
Resources: My icon: http://acelink.evansville.edu/Images/vCalendar.gif http://blogs.msdn.com/exchange/archive/2004/10/22/246468.aspx http://www.imc.org/pdi/ (Nice Word Document for reference) Contributions by none other than Ben Forta! Let me know if you have any questions. M!ke -------- <cfparam name="url.eventID" type="integer" default="-1"> <cffunction name="vCalDateTimeFormat" returntype="string" output="no"> <cfargument name="eventTime" type="date" required="yes"> <cfset arguments.eventTime = dateConvert("local2utc", arguments.eventTime)> <cfreturn dateFormat(arguments.eventTime, "yyyymmdd") & "T" & timeFormat(arguments.eventTime, "HHmmss") & "Z"> </cffunction> <cfquery name="events" datasource="{DSN GOES HERE}"> SELECT calendarName ,subject ,location ,eventDetails ,startTime ,endTime ,allDayEventFlag FROM Events WHERE eventID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.eventID#"> </cfquery> <cfif not events.recordCount> <p>Event not found</p> <cfabort> </cfif> <cfmail from="[EMAIL PROTECTED]" to="#session.objUser.getEmailAddress()#" subject="#trim(events.subject)#" spoolenable="no"> <cfmailpart type="text/plain">#trim(events.eventDetails)#</cfmailpart> <cfmailpart type="text/calendar"> BEGIN:VCALENDAR PRODID:-//University of Evansville//AceLink//EN VERSION:2.0 METHOD:PUBLISH BEGIN:VEVENT ORGANIZER:MAILTO:[EMAIL PROTECTED] DTSTART:#vCalDateTimeFormat(events.startTime)# DTEND:#vCalDateTimeFormat(events.endTime)# LOCATION:#trim(events.location)# TRANSP:OPAQUE SEQUENCE:0 UID:{#createUUID()#} DTSTAMP:#vCalDateTimeFormat(now())# DESCRIPTION;ENCODING=QUOTED-PRINTABLE:#reReplace(events.eventDetails,"[# chr(13)##chr(10)#]", "=0D=0A=#chr(13)##chr(10)# ", "all")# SUMMARY:#trim(events.subject)# PRIORITY:5 X-MICROSOFT-CDO-IMPORTANCE:1 CLASS:PUBLIC BEGIN:VALARM TRIGGER:-PT1H ACTION:DISPLAY DESCRIPTION:Reminder END:VALARM END:VEVENT END:VCALENDAR </cfmailpart> </cfmail> <cfcontent reset="yes"><cfheader statuscode="204"><cfabort> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Logware (www.logware.us): a new and convenient web-based time tracking application. Start tracking and documenting hours spent on a project or with a client with Logware today. Try it for free with a 15 day trial account. http://www.houseoffusion.com/banners/view.cfm?bannerid=67 Message: http://www.houseoffusion.com/lists.cfm/link=i:4:199920 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

