Yes. This is fairly simple. Have your application response return:
.setContentType("text/calendar;charset=ISO-8859-1");
.setHeader("Content-Disposition", "attachment; filename=FileNameHere.ics");
write("BEGIN:VCALENDAR");
write("METHOD

UBLISH");
write("VERSION:2.0");
write("BEGIN:VEVENT");
write("DTSTAMP:20070122T170000Z"); //same as DTSTART, but ending in Z
write("DTSTART:20070122T170000"); //update start time accordingly
write("DTEND:20070122T180000); //update start time accordingly
write("SUMMARY:Summary Goes Here");
write("LOCATION:Location Goes Here");
write("UID:UniqueIdGoesHere");
write("DESCRIPTION

escription Goes Here");
write("STATUS:TENTATIVE");
write("END:VEVENT");
write("END:VCALENDAR");
This will be supported by most email clients (iCal, outlook, thunderbird, gmail, yahoo, etc)