duanjia1870 2014-08-04 04:46 采纳率: 0%
浏览 153

将Outlook展示日历同步到您的日历

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.

  • 写回答

1条回答 默认 最新

  • duanke2012 2014-08-04 21:11
    关注

    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!
    ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料