UpcomingMeetingsWidget — read-only list of upcoming Google Calendar meetings with a contact (or any of a deal's contacts), with reschedule / cancel actions. Mirrors EmailListWidget: same card look + OAuth-recovery behavior. Reads via `useUpcomingMeetings` (calendar.events scope
/**
* UpcomingMeetingsWidget — read-only list of upcoming Google Calendar meetings
* with a contact (or any of a deal's contacts), with reschedule / cancel
* actions.
*
* Mirrors EmailListWidget: same card look + OAuth-recovery behavior. Reads via
* `useUpcomingMeetings` (calendar.events scope). Cancel rides
* `google/calendar-delete-event`; reschedule is delegated to the parent (which
* opens ScheduleMeetingDialog in edit mode) so the create/edit form lives in
* one place.
*/
import { useCallback, useState } from 'react'
import { CalendarClock, Video, ExternalLink, X, Pencil, Users } from 'lucide-react'
import {
useUpcomingMeetings, useCalendarWrite, eventStartMs, type CalendarEvent,
} from '../platform/useCalendar'
import { awaitConsent } from '../platform/googleConsent'
imp
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key