export interface CalendarIntegrationEvent {
  id: string;
  calProviderId: string;
  title: string;
  description?: string;
  start: number;
  duration: number;
  /**
   * True if this is an all-day event (has VALUE=DATE instead of VALUE=DATE-TIME).
   * All-day events should be treated as "due on a day" rather than scheduled at a specific time.
   */
  isAllDay?: boolean;
  /**
   * Previous IDs this event was known by. Used for backward compatibility
   * when event ID format changes (e.g., recurring event instances).
   */
  legacyIds?: string[];
  /**
   * URL linking to the original calendar event (e.g. Google Calendar, Outlook web).
   * Extracted from the iCal URL property.
   */
  url?: string;
  /**
   * The issue provider key for this event's provider (e.g., 'ICAL' or 'plugin:google-calendar-provider').
   * Used to determine if event supports CRUD operations (plugin providers) vs read-only (iCal).
   */
  issueProviderKey: string;
  /**
   * Precise due-with-time timestamp (ms). When set, the task created from this event
   * will be scheduled at this time instead of just being assigned a due day.
   * For plugin calendar events, this is passed through from PluginSearchResult.dueWithTime.
   */
  dueWithTime?: number;
  /**
   * When true, this event comes from a reference calendar and is shown for
   * informational context only. Task-creation actions are hidden in the UI.
   */
  isReferenceCalendar?: boolean;
  /** Hex color configured on the calendar provider (e.g. '#4caf50'). */
  color?: string;
}
