Files
eleith 6c2a8ba2d2
ci/woodpecker/pr/calendar Pipeline was successful
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
fix(calendar): consume server-expanded busy occurrences
2026-10-26 05:21:15 -07:00

57 lines
2.3 KiB
TypeScript

// @when/calendar — external-calendar I/O for the worker (web consumes it too,
// but only the light, tree-shakeable read/build paths — never heavy provider work
// on a request).
// ICS document building.
export { buildIcs } from './ics.js';
export { icsValue, icsParameter } from './text.js';
export type { IcsInput, IcsMethod } from './ics.js';
export type { Clock } from './clock.js';
// Shared calendar event fields (Google + ICS).
export { describeAppointment } from './description.js';
export { guestContact } from './guest.js';
export type { CalendarGuest } from './guest.js';
// Which calendars block a meeting's slots. Kept apart from busy.js so the web
// availability path can import it without pulling in provider adapters.
export { busyCalendarsFor } from './busy-calendars.js';
// Worker refresh: fetch provider-expanded busy intervals, filtering our own events.
export { fetchBusyIntervals } from './busy.js';
// Pushing appointments to a destination calendar.
export { pushAppointment, deleteAppointmentFromCalendar } from './push.js';
export type { PushOptions, PushResult, DeleteResult } from './push.js';
// Adapters and shared calendar types.
export { getCalendarAdapter } from './adapter.js';
export type { CalendarAdapter } from './adapter.js';
export { getProviderAdapter } from './provider-adapter.js';
export type { ProviderAdapter, ProviderCalendar } from './provider-adapter.js';
export type { BusyEvent, BusyWindow, Interval } from './types.js';
// Provider connect + discovery — used to authenticate a provider, run the OAuth
// consent flow, and list available calendars without a calendar-bound adapter
// (the CLI today; a web connect/test UI could consume the same paths).
export {
getGoogleAccessToken,
buildGoogleAuthUrl,
exchangeGoogleAuthCode,
revokeGoogleToken,
listGoogleCalendars
} from './adapters/google.js';
export type {
GoogleConfig,
GoogleTokens,
GoogleCalendarItem,
GoogleAuthUrlOptions
} from './adapters/google.js';
export { getGoogleEvent, patchGoogleEvent } from './adapters/google-event.js';
export { verifyCalDavProvider, discoverCalDavCalendars } from './adapters/caldav.js';
export type { CalDavCalendarItem } from './adapters/caldav.js';
// Logger injection — the host installs its logger once at startup.
export { setLogger } from './logger.js';
export type { Logger } from './logger.js';