import { useContactCalendar, useIntegrations } from '../hooks'; import { integrationsApi } from '../api'; import type { M365CalendarEvent } from '../types'; interface Props { contactId: string; } function formatEventDate(dt: string): string { return new Date(dt).toLocaleString('de-DE', { weekday: 'short', day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', }); } export function CalendarTab({ contactId }: Props) { const { data: integrationsData } = useIntegrations(); const isConnected = integrationsData?.data?.some( (i) => i.provider === 'MICROSOFT_365' && i.connected, ) ?? false; const { data, isLoading, error } = useContactCalendar(contactId); const events: M365CalendarEvent[] = data?.data ?? []; if (!isConnected) { return (

Verbinden Sie Microsoft 365, um Kalendertermine zu diesem Kontakt zu sehen.

); } if (isLoading) { return

Laden…

; } if (error) { return

Kalendertermine konnten nicht geladen werden.

; } if (events.length === 0) { return

Keine Kalendertermine in den nächsten 90 Tagen.

; } return (
{events.map((event) => (
{event.subject} {event.isOnlineMeeting && ( Online )}
{formatEventDate(event.start.dateTime)} – {new Date(event.end.dateTime).toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' })}
{event.location?.displayName && (
📍 {event.location.displayName}
)}
))}
); }