You don't really need a DLL.
What I do is to save the appointment off as a text file, then read and manipulate the data in the text file.
I use something like this (h_appt is the handle to the appointment):
def var h_appt as com-handle.
def stream s_time.
function f_get_outlook_time returns char (inp_time as char):
define variable inttime as integer no-undo.
inttime = index(inp_time,":",15).
inttime = inttime - 2.
return substring(inp_time,inttime,8).
end function.
function f_outlook_get_date_time returns char (inp_action as char):
define variable strtime as character no-undo.
define variable out_time as character no-undo.
define variable temp_time_file as char.
h_Appt:saveas(temp_time_file,0) no-error.
if search (temp_time_file) <> ? then do:
input stream s_time from value(temp_time_file).
repeat:
import stream s_time unformatted strtime.
if strtime begins inp_action then do:
out_time = f_get_outlook_time (strtime).
leave.
end.
end.
input stream s_time close.
end.
return out_time.
end function.