Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I want to create a link and use an Outlook calender. Please advise how I could do this in Perl?

Basically I want the link to connect to a Microsoft Outlook calender on our server and use this calender the same way I use it in my Microsoft Outlook mail. Is this something I could do with Perl/CGI??

Replies are listed 'Best First'.
Re: Getting calender
by cacharbe (Curate) on Sep 30, 2002 at 16:05 UTC
    The short answer here is Yes. The longer answer is a bit more complicated.

    Some things you are going to have to do some research on (in no particular order) are:

    • Win32::OLE
    • Using Win32::OLE to connect to Exchange through one of the following:
      • Outlook
      • Outlook Web Access (OWA)
      • CDO-NTS
    • Using the MAPI interface to get the data you need
    • Proper Authentication
    Off the top of my head, the following will get a list of appointments from the current calendar:
    use strict; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Outlook'; use Win32::OLE::Variant; my $OL = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit'); my $NameSpace = $OL->GetNameSpace("MAPI"); foreach my $folders (in $NameSpace->{Folders}){ print $folders->{Name}."\n"; my $folder = $folders->Folders("Calendar"); print "\t".$folder->{Name}."\n"; foreach my $item (in $folder->{Items}){ print "\t\t".sprintf("%s",Variant(VT_DATE,$item->{Start})) +." : ". $item->{Subject}."\n"; } }

    C-.

    ---
    Flex the Geek

Re: Getting calender
by sch (Pilgrim) on Sep 30, 2002 at 15:08 UTC

    I'm guessing that this should be do-able using OLE but it's not something I've done myself.