Re: outlook calendar

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



= = = Original message = = =

> Good morning,
> 
> Is it possible to reach the data of the outlook calendar (on a server
> exchange) with php?
> 
> Thank you for advance

I've never tried using PHP to connect to an Exchange server directly, but I've done some stuff with using PHP to connect via COM to Outlook itself (and let Outlook do all the hard work of getting data from Exchange).

Here's some sample code to read calendar entries.  Remember, you have to have Outlook currently running on the PC that PHP is running on.

Good luck!

-TG

<?php
$comobjOutlook = new COM("outlook.application") or die("Unable to instantiate outlook"); $comobjOutlook -> Activate;

# This is your mailbox name just like it appears in your Folders view.  It might be 'Inbox' or something else.
$targetmailboxname = "Personal Folders";

# This is the folder you're looking for.  In this case, I'm looking for calendar items, but you can look for
# any folder.  You need to add another loop to look for subfolders.  Although there's probably a better
# way, that's how I did it when I needed to get to Personal Folders/Inbox/Subfoldername
$targetfoldername = "Calendar";

$objNamespace = $comobjOutlook->GetNameSpace("MAPI");
$objFolders = $objNamespace->Folders();
$mailboxcount = $objFolders -> Count();

$foundmailbox = FALSE;
for ($i=1; $i<=$mailboxcount; $i++) {
  $folderitem = $objFolders ->Item($i);
  if ($folderitem -> Name == $targetmailboxname) {
    $objMailbox = $folderitem;
    $foundmailbox = TRUE;
  }
}

$foundcal = FALSE;
if ($foundmailbox) {
  $objFolders = $objMailbox->Folders();
  $foldercount = $objFolders -> Count();

  for ($i=1; $i<=$foldercount; $i++) {
    $folderitem = $objFolders -> Item($i);
    if ($folderitem -> Name == $targetfoldername) {
      $objCalendar = $folderitem;
      $foundcal = TRUE;
    }
  }

  if ($foundcal) {
    $objItems = $objCalendar->Items();
    $itemcount = $objItems->Count();

    for ($i=1; $i<=$itemcount; $i++) {
      $apptitem = $objItems -> Item($i);
      $apptstart = $apptitem -> Start();
      $apptend = $apptitem -> End();
      $apptallday = $apptitem -> AllDayEvent();
      $apptrecur = $apptitem -> IsRecurring();
      $apptsubject = $apptitem -> Subject();
      $apptlocation = $apptitem -> Location();

      $secondsadj = $apptstart - 14400;
      $startadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970));

      $secondsadj = $apptend - 14400;
      $endadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970));

      if($apptallday) { $allday = "All Day"; } else { $allday = ""; }
      if($apptrecur) { $recurring = "Recurring"; } else { $recurring = ""; }

      echo "$apptsubject @ $apptlocation\r\nFrom: $startadj To: $endadj\r\n";
      if ($allday <> "" OR $recurring <> "") echo "$allday $recurring\r\n";
      echo "\r\n\r\n";
    }

  } else {
    die ("Did not find calendar folder");
  }

} else {
  die("Did not find target mailbox: $targetmailboxname");
}
?>



___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux