Реалізація синхронізації бронювань з Outlook Calendar

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація синхронізації бронювань з Outlook Calendar
Середня
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація синхронізації бронювань з Outlook Calendar

Outlook Calendar — стандарт у корпоративному середовищі. Синхронізація бронювань з Outlook актуальна для B2B-сервісів, консалтингу, медичних клінік, де фахівці працюють у Microsoft 365.

Microsoft Graph API

Outlook Calendar керується через Microsoft Graph API. Авторизація через Microsoft Identity Platform (Azure AD):

use Microsoft\Graph\Graph;
use Microsoft\Graph\Model\Event as GraphEvent;

class OutlookCalendarService
{
    private Graph $graph;

    public function __construct(string $accessToken)
    {
        $this->graph = new Graph();
        $this->graph->setAccessToken($accessToken);
    }

    public function createEvent(Booking $booking): string
    {
        $event = new GraphEvent();
        $event->setSubject("{$booking->service->name} — {$booking->customer_name}");
        $event->setBody([
            'contentType' => 'HTML',
            'content'     => $this->buildHtmlBody($booking),
        ]);
        $event->setStart([
            'dateTime' => $booking->starts_at->toIso8601String(),
            'timeZone' => 'Russian Standard Time',
        ]);
        $event->setEnd([
            'dateTime' => $booking->ends_at->toIso8601String(),
            'timeZone' => 'Russian Standard Time',
        ]);

        $created = $this->graph
            ->createRequest('POST', '/me/events')
            ->attachBody($event)
            ->setReturnType(GraphEvent::class)
            ->execute();

        return $created->getId();
    }
}

OAuth2 флоу для Microsoft 365

Реєстрація додатка в Azure Portal, scope Calendars.ReadWrite:

Route::get('/integrations/outlook/connect', function () {
    $url = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?' .
        http_build_query([
            'client_id'     => config('services.microsoft.client_id'),
            'scope'         => 'Calendars.ReadWrite offline_access',
            'redirect_uri'  => route('integrations.outlook.callback'),
            'response_type' => 'code',
        ]);

    return redirect($url);
});

Відмінності від Google Calendar

  • Використовується Microsoft Graph, а не Calendar API
  • Часові пояси передаються за назвою Windows (Russian Standard Time, не Europe/Moscow)
  • Для корпоративних аккаунтів авторизація через Tenant ID, не common
  • Microsoft Graph Webhooks для отримання змін працюють через підписи з обов'язковим валідаційним challenge

Терміни

Синхронізація з Outlook Calendar через Microsoft Graph: 3–5 робочих днів.