/// /// declare namespace GoogleAppsScript { namespace Calendar { /** * Represents a calendar that the user owns or is subscribed to. */ interface Calendar { createAllDayEvent(title: string, date: Base.Date): CalendarEvent; createAllDayEvent(title: string, startDate: Base.Date, endDate: Base.Date): CalendarEvent; createAllDayEvent( title: string, startDate: Base.Date, endDate: Base.Date, options: { [key: string]: any }, ): CalendarEvent; createAllDayEvent(title: string, date: Base.Date, options: { [key: string]: any }): CalendarEvent; createAllDayEventSeries( title: string, startDate: Base.Date, recurrence: EventRecurrence, ): CalendarEventSeries; createAllDayEventSeries( title: string, startDate: Base.Date, recurrence: EventRecurrence, options: { [key: string]: any }, ): CalendarEventSeries; createEvent(title: string, startTime: Base.Date, endTime: Base.Date): CalendarEvent; createEvent( title: string, startTime: Base.Date, endTime: Base.Date, options: { [key: string]: any }, ): CalendarEvent; createEventFromDescription(description: string): CalendarEvent; createEventSeries( title: string, startTime: Base.Date, endTime: Base.Date, recurrence: EventRecurrence, ): CalendarEventSeries; createEventSeries( title: string, startTime: Base.Date, endTime: Base.Date, recurrence: EventRecurrence, options: { [key: string]: any }, ): CalendarEventSeries; deleteCalendar(): void; getColor(): string; getDescription(): string; getEventById(iCalId: string): CalendarEvent; getEventSeriesById(iCalId: string): CalendarEventSeries; getEvents(startTime: Base.Date, endTime: Base.Date): CalendarEvent[]; getEvents(startTime: Base.Date, endTime: Base.Date, options: { [key: string]: any }): CalendarEvent[]; getEventsForDay(date: Base.Date): CalendarEvent[]; getEventsForDay(date: Base.Date, options: { [key: string]: any }): CalendarEvent[]; getId(): string; getName(): string; getTimeZone(): string; isHidden(): boolean; isMyPrimaryCalendar(): boolean; isOwnedByMe(): boolean; isSelected(): boolean; setColor(color: string): Calendar; setDescription(description: string): Calendar; setHidden(hidden: boolean): Calendar; setName(name: string): Calendar; setSelected(selected: boolean): Calendar; setTimeZone(timeZone: string): Calendar; unsubscribeFromCalendar(): void; } /** * Allows a script to read and update the user's Google Calendar. This class provides direct access * to the user's default calendar, as well as the ability to retrieve additional calendars that the * user owns or is subscribed to. */ interface CalendarApp { Color: typeof Color; EventColor: typeof EventColor; GuestStatus: typeof GuestStatus; Month: typeof Base.Month; Visibility: typeof Visibility; Weekday: typeof Base.Weekday; createAllDayEvent(title: string, date: Base.Date): CalendarEvent; createAllDayEvent(title: string, startDate: Base.Date, endDate: Base.Date): CalendarEvent; createAllDayEvent( title: string, startDate: Base.Date, endDate: Base.Date, options: { [key: string]: any }, ): CalendarEvent; createAllDayEvent(title: string, date: Base.Date, options: { [key: string]: any }): CalendarEvent; createAllDayEventSeries( title: string, startDate: Base.Date, recurrence: EventRecurrence, ): CalendarEventSeries; createAllDayEventSeries( title: string, startDate: Base.Date, recurrence: EventRecurrence, options: { [key: string]: any }, ): CalendarEventSeries; createCalendar(name: string): Calendar; createCalendar(name: string, options: { [key: string]: any }): Calendar; createEvent(title: string, startTime: Base.Date, endTime: Base.Date): CalendarEvent; createEvent( title: string, startTime: Base.Date, endTime: Base.Date, options: { [key: string]: any }, ): CalendarEvent; createEventFromDescription(description: string): CalendarEvent; createEventSeries( title: string, startTime: Base.Date, endTime: Base.Date, recurrence: EventRecurrence, ): CalendarEventSeries; createEventSeries( title: string, startTime: Base.Date, endTime: Base.Date, recurrence: EventRecurrence, options: { [key: string]: any }, ): CalendarEventSeries; getAllCalendars(): Calendar[]; getAllOwnedCalendars(): Calendar[]; getCalendarById(id: string): Calendar; getCalendarsByName(name: string): Calendar[]; getColor(): string; getDefaultCalendar(): Calendar; getDescription(): string; getEventById(iCalId: string): CalendarEvent; getEventSeriesById(iCalId: string): CalendarEventSeries; getEvents(startTime: Base.Date, endTime: Base.Date): CalendarEvent[]; getEvents(startTime: Base.Date, endTime: Base.Date, options: { [key: string]: any }): CalendarEvent[]; getEventsForDay(date: Base.Date): CalendarEvent[]; getEventsForDay(date: Base.Date, options: { [key: string]: any }): CalendarEvent[]; getId(): string; getName(): string; getOwnedCalendarById(id: string): Calendar; getOwnedCalendarsByName(name: string): Calendar[]; getTimeZone(): string; isHidden(): boolean; isMyPrimaryCalendar(): boolean; isOwnedByMe(): boolean; isSelected(): boolean; newRecurrence(): EventRecurrence; setColor(color: string): Calendar; setDescription(description: string): Calendar; setHidden(hidden: boolean): Calendar; setName(name: string): Calendar; setSelected(selected: boolean): Calendar; setTimeZone(timeZone: string): Calendar; subscribeToCalendar(id: string): Calendar; subscribeToCalendar(id: string, options: { [key: string]: any }): Calendar; } /** * Represents a single calendar event. */ interface CalendarEvent { addEmailReminder(minutesBefore: Integer): CalendarEvent; addGuest(email: string): CalendarEvent; addPopupReminder(minutesBefore: Integer): CalendarEvent; addSmsReminder(minutesBefore: Integer): CalendarEvent; anyoneCanAddSelf(): boolean; deleteEvent(): void; deleteTag(key: string): CalendarEvent; getAllDayEndDate(): Base.Date; getAllDayStartDate(): Base.Date; getAllTagKeys(): string[]; getColor(): string; getCreators(): string[]; getDateCreated(): Base.Date; getDescription(): string; getEmailReminders(): Integer[]; getEndTime(): Base.Date; getEventSeries(): CalendarEventSeries; getGuestByEmail(email: string): EventGuest; getGuestList(): EventGuest[]; getGuestList(includeOwner: boolean): EventGuest[]; getId(): string; getLastUpdated(): Base.Date; getLocation(): string; getMyStatus(): GuestStatus; getOriginalCalendarId(): string; getPopupReminders(): Integer[]; getSmsReminders(): Integer[]; getStartTime(): Base.Date; getTag(key: string): string; getTitle(): string; getVisibility(): Visibility; guestsCanInviteOthers(): boolean; guestsCanModify(): boolean; guestsCanSeeGuests(): boolean; isAllDayEvent(): boolean; isOwnedByMe(): boolean; isRecurringEvent(): boolean; removeAllReminders(): CalendarEvent; removeGuest(email: string): CalendarEvent; resetRemindersToDefault(): CalendarEvent; setAllDayDate(date: Base.Date): CalendarEvent; setAllDayDates(startDate: Base.Date, endDate: Base.Date): CalendarEvent; setAnyoneCanAddSelf(anyoneCanAddSelf: boolean): CalendarEvent; setColor(color: string): CalendarEvent; setDescription(description: string): CalendarEvent; setGuestsCanInviteOthers(guestsCanInviteOthers: boolean): CalendarEvent; setGuestsCanModify(guestsCanModify: boolean): CalendarEvent; setGuestsCanSeeGuests(guestsCanSeeGuests: boolean): CalendarEvent; setLocation(location: string): CalendarEvent; setMyStatus(status: GuestStatus): CalendarEvent; setTag(key: string, value: string): CalendarEvent; setTime(startTime: Base.Date, endTime: Base.Date): CalendarEvent; setTitle(title: string): CalendarEvent; setVisibility(visibility: Visibility): CalendarEvent; } /** * Represents a series of events (a recurring event). */ interface CalendarEventSeries { addEmailReminder(minutesBefore: Integer): CalendarEventSeries; addGuest(email: string): CalendarEventSeries; addPopupReminder(minutesBefore: Integer): CalendarEventSeries; addSmsReminder(minutesBefore: Integer): CalendarEventSeries; anyoneCanAddSelf(): boolean; deleteEventSeries(): void; deleteTag(key: string): CalendarEventSeries; getAllTagKeys(): string[]; getColor(): string; getCreators(): string[]; getDateCreated(): Base.Date; getDescription(): string; getEmailReminders(): Integer[]; getGuestByEmail(email: string): EventGuest; getGuestList(): EventGuest[]; getGuestList(includeOwner: boolean): EventGuest[]; getId(): string; getLastUpdated(): Base.Date; getLocation(): string; getMyStatus(): GuestStatus; getOriginalCalendarId(): string; getPopupReminders(): Integer[]; getSmsReminders(): Integer[]; getTag(key: string): string; getTitle(): string; getVisibility(): Visibility; guestsCanInviteOthers(): boolean; guestsCanModify(): boolean; guestsCanSeeGuests(): boolean; isOwnedByMe(): boolean; removeAllReminders(): CalendarEventSeries; removeGuest(email: string): CalendarEventSeries; resetRemindersToDefault(): CalendarEventSeries; setAnyoneCanAddSelf(anyoneCanAddSelf: boolean): CalendarEventSeries; setColor(color: string): CalendarEventSeries; setDescription(description: string): CalendarEventSeries; setGuestsCanInviteOthers(guestsCanInviteOthers: boolean): CalendarEventSeries; setGuestsCanModify(guestsCanModify: boolean): CalendarEventSeries; setGuestsCanSeeGuests(guestsCanSeeGuests: boolean): CalendarEventSeries; setLocation(location: string): CalendarEventSeries; setMyStatus(status: GuestStatus): CalendarEventSeries; setRecurrence(recurrence: EventRecurrence, startDate: Base.Date): CalendarEventSeries; setRecurrence(recurrence: EventRecurrence, startTime: Base.Date, endTime: Base.Date): CalendarEventSeries; setTag(key: string, value: string): CalendarEventSeries; setTitle(title: string): CalendarEventSeries; setVisibility(visibility: Visibility): CalendarEventSeries; } /** * An enum representing the named colors available in the Calendar service. */ enum Color { BLUE, BROWN, CHARCOAL, CHESTNUT, GRAY, GREEN, INDIGO, LIME, MUSTARD, OLIVE, ORANGE, PINK, PLUM, PURPLE, RED, RED_ORANGE, SEA_BLUE, SLATE, TEAL, TURQOISE, YELLOW, } /** * An enum representing the named event colors available in the Calendar service. */ enum EventColor { PALE_BLUE, PALE_GREEN, MAUVE, PALE_RED, YELLOW, ORANGE, CYAN, GRAY, BLUE, GREEN, RED, } /** * Represents a guest of an event. */ interface EventGuest { getAdditionalGuests(): Integer; getEmail(): string; getGuestStatus(): GuestStatus; getName(): string; /** @deprecated DO NOT USE */ getStatus(): string; } /** * Represents the recurrence settings for an event series. */ interface EventRecurrence { addDailyExclusion(): RecurrenceRule; addDailyRule(): RecurrenceRule; addDate(date: Base.Date): EventRecurrence; addDateExclusion(date: Base.Date): EventRecurrence; addMonthlyExclusion(): RecurrenceRule; addMonthlyRule(): RecurrenceRule; addWeeklyExclusion(): RecurrenceRule; addWeeklyRule(): RecurrenceRule; addYearlyExclusion(): RecurrenceRule; addYearlyRule(): RecurrenceRule; setTimeZone(timeZone: string): EventRecurrence; } /** * An enum representing the statuses a guest can have for an event. */ enum GuestStatus { INVITED, MAYBE, NO, OWNER, YES, } /** * Represents a recurrence rule for an event series. * * Note that this class also behaves like the EventRecurrence that it belongs to, * allowing you to chain rule creation together like so: * * recurrence.addDailyRule().times(3).interval(2).addWeeklyExclusion().times(2); * * times(times) * interval(interval) */ interface RecurrenceRule { addDailyExclusion(): RecurrenceRule; addDailyRule(): RecurrenceRule; addDate(date: Base.Date): EventRecurrence; addDateExclusion(date: Base.Date): EventRecurrence; addMonthlyExclusion(): RecurrenceRule; addMonthlyRule(): RecurrenceRule; addWeeklyExclusion(): RecurrenceRule; addWeeklyRule(): RecurrenceRule; addYearlyExclusion(): RecurrenceRule; addYearlyRule(): RecurrenceRule; interval(interval: Integer): RecurrenceRule; onlyInMonth(month: Base.Month): RecurrenceRule; onlyInMonths(months: Base.Month[]): RecurrenceRule; onlyOnMonthDay(day: Integer): RecurrenceRule; onlyOnMonthDays(days: Integer[]): RecurrenceRule; onlyOnWeek(week: Integer): RecurrenceRule; onlyOnWeekday(day: Base.Weekday): RecurrenceRule; onlyOnWeekdays(days: Base.Weekday[]): RecurrenceRule; onlyOnWeeks(weeks: Integer[]): RecurrenceRule; onlyOnYearDay(day: Integer): RecurrenceRule; onlyOnYearDays(days: Integer[]): RecurrenceRule; setTimeZone(timeZone: string): EventRecurrence; times(times: Integer): RecurrenceRule; until(endDate: Base.Date): RecurrenceRule; weekStartsOn(day: Base.Weekday): RecurrenceRule; } /** * An enum representing the visibility of an event. */ enum Visibility { CONFIDENTIAL, DEFAULT, PRIVATE, PUBLIC, } } } declare var CalendarApp: GoogleAppsScript.Calendar.CalendarApp;