UNPKG

nylas

Version:

A NodeJS wrapper for the Nylas REST API for email, contacts, and calendar.

181 lines (180 loc) 5.46 kB
import { ListQueryParams } from './listQueryParams.js'; import { NotetakerMeetingSettings } from './notetakers.js'; /** * Interface for Calendar Notetaker participant filter */ export interface CalendarNotetakerParticipantFilter { /** * Only have meeting bot join meetings with greater than or equal to this number of participants */ participantsGte?: number; /** * Only have meeting bot join meetings with less than or equal to this number of participants */ participantsLte?: number; } /** * Interface for Calendar Notetaker rules */ export interface CalendarNotetakerRules { /** * Types of events to include for notetaking. This is a union of events that should have a Notetaker sent to them. * "internal": Events where the host domain matches all participants' domain names * "external": Events where the host domain differs from any participant's domain name * "own_events": Events where the host is the same as the user's grant * "participant_only": Events where the user's grant is a participant but not the host * "all": When all options are included, all events with meeting links will have Notetakers */ eventSelection?: Array<'internal' | 'external' | 'all' | 'ownEvents' | 'participantOnly'>; /** * Filters to apply based on the number of participants. This is an intersection with the event_selection. * When null, there are no restrictions on the number of participants for notetaker events. */ participantFilter?: CalendarNotetakerParticipantFilter; } /** * Interface for Calendar Notetaker settings */ export interface CalendarNotetaker { /** * The display name for the Notetaker bot. * @default "Nylas Notetaker" */ name?: string; /** * Notetaker Meeting Settings */ meetingSettings?: NotetakerMeetingSettings; /** * Rules for when the Notetaker should join a meeting. */ rules?: CalendarNotetakerRules; } /** * Interface of the query parameters for listing calendars. */ export interface ListCalendersQueryParams extends ListQueryParams { /** * The maximum number of objects to return. * This field defaults to 50. The maximum allowed value is 200. */ limit?: number; /** * An identifier that specifies which page of data to return. * This value should be taken from the [ListResponse.nextCursor] response field. */ pageToken?: string; /** * Pass in your metadata key and value pair to search for metadata. */ metadataPair?: Record<string, string>; } /** * Interface of a Nylas create calendar request */ export interface CreateCalenderRequest { /** * Name of the Calendar. */ name: string; /** * Description of the calendar. */ description?: string; /** * Geographic location of the calendar as free-form text. */ location?: string; /** * IANA time zone database formatted string (e.g. America/New_York). * @see <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">List of tz database time zones</a> */ timezone?: string; /** * A list of key-value pairs storing additional data. */ metadata?: Record<string, string>; /** * Notetaker meeting bot settings */ notetaker?: CalendarNotetaker; } /** * Interface of a Nylas update calendar request */ export interface UpdateCalenderRequest extends Partial<CreateCalenderRequest> { /** * The background color of the calendar in the hexadecimal format (e.g. #0099EE). * Empty indicates default color. */ hexColor?: string; /** * The background color of the calendar in the hexadecimal format (e.g. #0099EE). * Empty indicates default color. (Google only) */ hexForegroundColor?: string; } /** * Interface of a Nylas calendar object */ export interface Calendar { /** * Globally unique object identifier. */ id: string; /** * Grant ID of the Nylas account. */ grantId: string; /** * Name of the Calendar. */ name: string; /** * The type of object. */ object: string; /** * IANA time zone database formatted string (e.g. America/New_York). * @see <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">List of tz database time zones</a> */ timezone: string; /** * If the event participants are able to edit the event. */ readOnly: boolean; /** * If the calendar is owned by the user account. */ isOwnedByUser: boolean; /** * Description of the calendar. */ description?: string; /** * Geographic location of the calendar as free-form text. */ location?: string; /** * The background color of the calendar in the hexadecimal format (e.g. #0099EE). * Empty indicates default color. */ hexColor?: string; /** * The background color of the calendar in the hexadecimal format (e.g. #0099EE). * Empty indicates default color. (Google only) */ hexForegroundColor?: string; /** * If the calendar is the primary calendar. */ isPrimary?: boolean; /** * A list of key-value pairs storing additional data. */ metadata?: Record<string, unknown>; /** * Notetaker meeting bot settings */ notetaker?: CalendarNotetaker; }