Інтеграція Outlook Calendar API з сайтом

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

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

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція Outlook Calendar API з сайтом
Середня
~2-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 API з веб-сайтом

Outlook Calendar — частина Microsoft 365. API реалізований через Microsoft Graph. Використовується в корпоративних інструментах: запис до фахівців, синхронізація зустрічей, відображення завантаженості cooperatives.

Microsoft Graph: читання подій

import { Client } from '@microsoft/microsoft-graph-client';

const client = Client.initWithMiddleware({ authProvider: tokenCredentialAuthProvider });

async function getCalendarEvents(userId: string): Promise<Event[]> {
  const response = await client
    .api(`/users/${userId}/calendarView`)
    .query({
      startDateTime: new Date().toISOString(),
      endDateTime:   new Date(Date.now() + 7 * 86400000).toISOString(),
    })
    .select('subject,start,end,location,isAllDay')
    .orderby('start/dateTime')
    .get();

  return response.value.map((e: any) => ({
    id:       e.id,
    title:    e.subject,
    start:    e.start.dateTime,
    end:      e.end.dateTime,
    location: e.location?.displayName,
    allDay:   e.isAllDay,
  }));
}

Створення ereignення

async function createEvent(userId: string, booking: Booking): Promise<string> {
  const event = await client.api(`/users/${userId}/events`).post({
    subject:  booking.serviceName,
    start:    { dateTime: booking.startsAt, timeZone: 'Russian Standard Time' },
    end:      { dateTime: booking.endsAt,   timeZone: 'Russian Standard Time' },
    body: {
      contentType: 'HTML',
      content:     `<p>Клієнт: ${booking.customerName}</p><p>Телефон: ${booking.phone}</p>`,
    },
    attendees: [{ emailAddress: { address: booking.customerEmail }, type: 'required' }],
    isReminderOn:       true,
    reminderMinutesBeforeStart: 60,
  });
  return event.id;
}

Перевірка вільного часу (FindMeetingTimes)

async function findAvailableSlots(userEmail: string, duration: number) {
  return client.api('/me/findMeetingTimes').post({
    attendees: [{ emailAddress: { address: userEmail }, type: 'required' }],
    timeConstraint: {
      timeslots: [{
        start: { dateTime: new Date().toISOString(), timeZone: 'Russian Standard Time' },
        end:   { dateTime: new Date(Date.now() + 7 * 86400000).toISOString(), timeZone: 'Russian Standard Time' },
      }],
    },
    meetingDuration: `PT${duration}M`,
  });
}

Графік

Читання подій + створення через Graph API: 3–4 робочих дні.