ggcodes
ggcodes

Reputation: 2909

Sync outlook calendar to your calendar

Good day,

I am working or basically coding with my own calendar application and I want to add my outlook calendar or sync the events from my outlook to my own calendar.

Is this possible ? if YES

Is there any good PHP plugins that I can use to do this kind of thing.

if NO

Can you explain why and can I know some alternatives or better solution to solve my problem. ?

Thank you.

Upvotes: 0

Views: 832

Answers (1)

roosevelt
roosevelt

Reputation: 1974

Are you familiar with PHP COM Objects? Something like below would be ideal:

<?php

/**
 * This example uses COM() to Access Appointments
 * Requires Windows, Outlook
 *
 * @author justin DOT carlson AT gmail DOT com
 * @license none/free - sample code
**/

// define appointments array
$appointments = array();

// folder types (calendar, etc)
define('olFolderDeleted', 3);
define('olFolderOutbox', 4);
define('olFolderSent', 5);
define('olFolderInBox', 6);
define('olFolderCalendar', 9);
define('olFolderContacts', 10);
define('olFolderJournal', 11);
define('olFolderNotes', 12);
define('olFolderTasks', 13);
define('olFolderDrafts', 16);

// start instance
$outlook = new COM("Outlook.Application");
$namespace = $outlook->getNameSpace("MAPI");
$namespace->Logon();

// get calendar folder
$calendar = $namespace->GetDefaultFolder(olFolderCalendar);

// gather, sort, and configure entries
$entries = $calendar->Items;
$entries->Sort("[Start]");
$entries->IncludeRecurrences = True;

// search filter, change these YYYY/MM/DD values for your date range
$search = '[Start] >= "YYYY/MM/DD 12:00 am" AND [Start]<= "YYYY/MM/DD 11:59 pm"';

// find entries
$schedule = $entries->Find($search);

while ( ! is_null($schedule) ) {

    $appointment = array();
    $appointment['allday'] = $schedule->AllDayEvent;
    $appointment['subject'] = $schedule->Subject;
    $appointment['hours'] = ($schedule->Duration / 60);
    $appointment['location'] = $schedule->Location;
    $appointment['subject'] = $schedule->Subject;
    $appointment['body'] = $schedule->Body;
    $appointment['categories'] = $schedule->Categories;
    $appointment['start'] = date('m/d/Y h:i:s a', variant_date_to_timestamp($schedule->Start));
    $appointment['end'] = date('m/d/Y h:i:s a', variant_date_to_timestamp($schedule->End));
    $appointment['stamp'] = variant_date_to_timestamp($schedule->Start);
    $appointments[] = $appointment;
    $schedule = $entries->FindNext();

}

// $appointments now contains your entries, enjoy!
?>

Upvotes: 1

Related Questions