Description:
ICS is a global format for calendar files widely being utilized by various calendar and email programs, including Google Calendar, Apple iCal, and Microsoft Outlook. These files enable users to share and publish information directly from their calendars over email or via uploading it to the worldwide web.
Step 1 :
Compile the below code
CREATE OR REPLACE FUNCTION ical_events (
p_summary IN VARCHAR2,
p_description IN VARCHAR2,
p_start_date IN DATE,
p_end_date IN DATE
)
RETURN VARCHAR2
AS
lv_desc VARCHAR2 (20000);
lv_summary VARCHAR2 (10000);
lv_dtstart VARCHAR2 (100);
lv_date VARCHAR2 (100);
lv_dtend VARCHAR2 (100);
l_retval VARCHAR2 (32767);
l_lf CHAR (1) := CHR (10);
BEGIN
lv_summary := ‘SUMMARY:’ || p_summary;
lv_date :=
‘DTSTAMP:’
|| TO_CHAR (SYSDATE, ‘RRRR-MM-DD’)
|| ‘T’
|| TO_CHAR (SYSDATE, ‘HH24:MI:SS’);
lv_dtstart :=
‘DTSTART:’
|| TO_CHAR (p_start_date, ‘RRRR-MM-DD’)
|| ‘T’
|| TO_CHAR (p_start_date, ‘HH24:MI:SS’);
lv_dtend :=
‘DTEND:’
|| TO_CHAR (p_end_date, ‘RRRR-MM-DD’)
|| ‘T’
|| TO_CHAR (p_end_date, ‘HH24:MI:SS’);
l_retval :=
‘BEGIN:VCALENDAR
VERSION:2.0
PRODID:-// Oracle Application Express //ENCAL
SCALE:GREGORIAN
BEGIN:VEVENT
‘
|| lv_date
|| CHR (10)
|| lv_dtstart
|| CHR (10)
|| lv_dtend
|| CHR (10)
|| lv_summary
|| CHR (10)
|| lv_desc
|| ‘
SEQUENCE:0
END:VEVENT
END:VCALENDAR’;
DBMS_OUTPUT.put_line (l_retval);
RETURN l_retval;
END ical_events;
Step 2:
Use APEX to create the necessary items to collect the following details:
- Start Date
- End Date
- Summary
- Description
Step 3 :
Execute the below PLSQL process to send email with ICS file
DECLARE
l_id NUMBER;
l_ical_event VARCHAR2 (32767);
l_blob BLOB;
BEGIN
BEGIN
SELECT ical_events (p_summary => :p2_summary,
p_description => :p2_description,
p_start_date => :p2_start_date,
p_end_date => :p2_end_date
)
INTO l_ical_event
FROM DUAL;
END;
BEGIN
l_id: =
apex_mail.send (p_from => ‘notification-noreply@staging.doyensys.com’,
p_to => ‘priyadharshini.ramesh@staging.doyensys.com’,
p_subj => ‘Subject of the Email’,
p_body => ‘BODY’,
p_body_html => ‘HTML – BODY’
);
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (-20004,
‘Error in sending an Email’ || SQLERRM
);
END;
l_blob := UTL_RAW.cast_to_raw (l_ical_event);
–Converting Varchar2 to BLOB content
BEGIN
apex_mail.add_attachment (p_mail_id => l_id,
p_attachment => l_blob,
p_filename => ‘training.ics’,
–Name of the ICS file
p_mime_type => ‘application/hbs-ics’
);
END;
END;
Summary: This post explains about Sending Calendar Invite via APEX Application
Queries?
Do drop a note by writing us at contact@staging.doyensys.com or use the comment section below to ask your questions.