gas-types-detailed
Version:
Enhanced Google Apps Script Type Definitions with detailed documentation. Includes type definitions plus code snippets, return values, required authorization scopes, and other details not found in @types/google-apps-script.
1,039 lines (1,002 loc) • 316 kB
TypeScript
// Type definitions for Google Apps Script 2025-11-10
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen <https://github.com/motemen/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference path="google-apps-script.types.d.ts" />
/// <reference path="google-apps-script.base.d.ts" />
declare namespace GoogleAppsScript {
namespace Calendar {
/**
* Represents a calendar that the user owns or is subscribed to.
*/
interface Calendar {
/**
* Creates a new all-day event.
*
* // Creates an all-day event for the moon landing and logs the ID.
* const event = CalendarApp.getDefaultCalendar().createAllDayEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969'),
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — The created event.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEvent(String,Date)
* @param title The title of the event.
* @param date The date of the event (only the day is used; the time is ignored).
*/
createAllDayEvent(title: string, date: Date): CalendarEvent;
/**
* Creates a new all-day event that can span multiple days.
*
* // Creates an all-day event for the Woodstock festival (August 15th to 17th) and
* // logs the ID.
* const event = CalendarApp.getDefaultCalendar().createAllDayEvent(
* 'Woodstock Festival',
* new Date('August 15, 1969'),
* new Date('August 18, 1969'),
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — The created event.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEvent(String,Date,Date)
* @param title The title of the event.
* @param startDate The date when the event starts (only the day is used; the time is ignored).
* @param endDate The date when the event ends (only the day is used; the time is ignored). The end date is exclusive.
*/
createAllDayEvent(title: string, startDate: Date, endDate: Date): CalendarEvent;
/**
* Creates a new all-day event that can span multiple days.
*
* // Creates an all-day event for the Woodstock festival (August 15th to 17th) and
* // logs the ID.
* const event = CalendarApp.getDefaultCalendar().createAllDayEvent(
* 'Woodstock Festival',
* new Date('August 15, 1969'),
* new Date('August 18, 1969'),
* {location: 'Bethel, White Lake, New York, U.S.', sendInvites: true},
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — The created event.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEvent(String,Date,Date,Object)
* @param title The title of the event.
* @param startDate The date when the event starts (only the day is used; the time is ignored).
* @param endDate The date when the event ends (only the day is used; the time is ignored). The end date is exclusive.
* @param options A JavaScript object that specifies advanced parameters, as listed below.
*
* Advanced parameters:
* - description (String) — The description of the event.
* - location (String) — The location of the event.
* - guests (String) — A comma-separated list of email addresses that should be added as guests.
* - sendInvites (Boolean) — Whether to send invitation emails (default: false).
*/
createAllDayEvent(title: string, startDate: Date, endDate: Date, options: any): CalendarEvent;
/**
* Creates a new all-day event.
*
* // Creates an all-day event for the moon landing and logs the ID.
* const event = CalendarApp.getDefaultCalendar().createAllDayEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969'),
* {location: 'The Moon'},
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — The created event.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEvent(String,Date,Object)
* @param title The title of the event.
* @param date The date of the event (only the day is used; the time is ignored).
* @param options A JavaScript object that specifies advanced parameters, as listed below.
*
* Advanced parameters:
* - description (String) — The description of the event.
* - location (String) — The location of the event.
* - guests (String) — A comma-separated list of email addresses that should be added as guests.
* - sendInvites (Boolean) — Whether to send invitation emails (default: false).
*/
createAllDayEvent(title: string, date: Date, options: any): CalendarEvent;
/**
* Creates a new all-day event series.
*
* // Creates an event series for a no-meetings day, taking place every Wednesday
* // in 2013.
* const eventSeries = CalendarApp.getDefaultCalendar().createAllDayEventSeries(
* 'No Meetings',
* new Date('January 2, 2013 03:00:00 PM EST'),
* CalendarApp.newRecurrence()
* .addWeeklyRule()
* .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY)
* .until(new Date('January 1, 2014')),
* );
* Logger.log(`Event Series ID: ${eventSeries.getId()}`);
*
* Return:
* - CalendarEventSeries — the created event series
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEventSeries(String,Date,EventRecurrence)
* @param title the title of the events in the series
* @param startDate the date of the first event in the series (only the day is used; the time is ignored)
* @param recurrence the recurrence settings of the event series
*/
createAllDayEventSeries(title: string, startDate: Date, recurrence: EventRecurrence): CalendarEventSeries;
/**
* Creates a new all-day event series.
*
* // Creates an event series for a no-meetings day, taking place every Wednesday
* // in 2013.
* const eventSeries = CalendarApp.getDefaultCalendar().createAllDayEventSeries(
* 'No Meetings',
* new Date('January 2, 2013 03:00:00 PM EST'),
* CalendarApp.newRecurrence()
* .addWeeklyRule()
* .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY)
* .until(new Date('January 1, 2014')),
* {guests: 'everyone@example.com'},
* );
* Logger.log(`Event Series ID: ${eventSeries.getId()}`);
*
* Return:
* - CalendarEventSeries — the created event series
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEventSeries(String,Date,EventRecurrence,Object)
* @param title the title of the events in the series
* @param startDate the date of the first event in the series (only the day is used; the time is ignored)
* @param recurrence the recurrence settings of the event series
* @param options a JavaScript object that specifies advanced parameters, as listed below
*
* Advanced parameters:
* - description (String) — the description of the events in the series
* - location (String) — the location of the events in the series
* - guests (String) — a comma-separated list of email addresses that should be added as guests to the events in the series
* - sendInvites (Boolean) — whether to send invitation emails (default: false)
*/
createAllDayEventSeries(title: string, startDate: Date, recurrence: EventRecurrence, options: any): CalendarEventSeries;
/**
* Creates a new event.
* If no time zone is specified, the time values are interpreted in the context of the script's time zone, which may be different than the calendar's time zone.
*
* // Creates an event for the moon landing and logs the ID.
* const event = CalendarApp.getDefaultCalendar().createEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969 20:00:00 UTC'),
* new Date('July 21, 1969 21:00:00 UTC'),
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — the created event
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createEvent(String,Date,Date)
* @param title the title of the event
* @param startTime the date and time when the event starts
* @param endTime the date and time when the event ends
*/
createEvent(title: string, startTime: Date, endTime: Date): CalendarEvent;
/**
* Creates a new event.
* If no time zone is specified, the time values are interpreted in the context of the script's time zone, which may be different than the calendar's time zone.
*
* // Creates an event for the moon landing and logs the ID.
* const event = CalendarApp.getDefaultCalendar().createEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969 20:00:00 UTC'),
* new Date('July 20, 1969 21:00:00 UTC'),
* {location: 'The Moon'},
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — the created event
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createEvent(String,Date,Date,Object)
* @param title the title of the event
* @param startTime the date and time when the event starts
* @param endTime the date and time when the event ends
* @param options a JavaScript object that specifies advanced parameters, as listed below
*
* Advanced parameters:
* - description (String) — the description of the event
* - location (String) — the location of the event
* - guests (String) — a comma-separated list of email addresses that should be added as guests
* - sendInvites (Boolean) — whether to send invitation emails (default: false)
*/
createEvent(title: string, startTime: Date, endTime: Date, options: any): CalendarEvent;
/**
* Creates an event from a free-form description.
* The description should use the same format as the UI's "Quick Add" feature.
*
* // Creates a new event and logs its ID.
* const event = CalendarApp.getDefaultCalendar().createEventFromDescription(
* 'Lunch with Mary, Friday at 1PM',
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — the created event
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createEventFromDescription(String)
* @param description a free-form description of the event
*/
createEventFromDescription(description: string): CalendarEvent;
/**
* Creates a new event series.
*
* // Creates an event series for a team meeting, taking place every Tuesday and
* // Thursday in 2013.
* const eventSeries = CalendarApp.getDefaultCalendar().createEventSeries(
* 'Team Meeting',
* new Date('January 1, 2013 03:00:00 PM EST'),
* new Date('January 1, 2013 04:00:00 PM EST'),
* CalendarApp.newRecurrence()
* .addWeeklyRule()
* .onlyOnWeekdays(
* [CalendarApp.Weekday.TUESDAY, CalendarApp.Weekday.THURSDAY])
* .until(new Date('January 1, 2014')),
* );
* Logger.log(`Event Series ID: ${eventSeries.getId()}`);
*
* Return:
* - CalendarEventSeries — the created event series
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createEventSeries(String,Date,Date,EventRecurrence)
* @param title the title of the events in the series
* @param startTime the date and time when the first event in the series starts
* @param endTime the date and time when the first event in the series ends
* @param recurrence the recurrence settings of the event series
*/
createEventSeries(title: string, startTime: Date, endTime: Date, recurrence: EventRecurrence): CalendarEventSeries;
/**
* Creates a new event series.
*
* // Creates an event series for a team meeting, taking place every Tuesday and
* // Thursday in 2013.
* const eventSeries = CalendarApp.getDefaultCalendar().createEventSeries(
* 'Team Meeting',
* new Date('January 1, 2013 03:00:00 PM EST'),
* new Date('January 1, 2013 04:00:00 PM EST'),
* CalendarApp.newRecurrence()
* .addWeeklyRule()
* .onlyOnWeekdays(
* [CalendarApp.Weekday.TUESDAY, CalendarApp.Weekday.THURSDAY])
* .until(new Date('January 1, 2014')),
* {location: 'Conference Room'},
* );
* Logger.log(`Event Series ID: ${eventSeries.getId()}`);
*
* Return:
* - CalendarEventSeries — the created event series
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#createEventSeries(String,Date,Date,EventRecurrence,Object)
* @param title the title of the events in the series
* @param startTime the date and time when the first event in the series starts
* @param endTime the date and time when the first event in the series ends
* @param recurrence the recurrence settings of the event series
* @param options a JavaScript object that specifies advanced parameters, as listed below
*
* Advanced parameters:
* - description (String) — the description of the events in the series
* - location (String) — the location of the events in the series
* - guests (String) — a comma-separated list of email addresses that should be added as guests to the events in the series
* - sendInvites (Boolean) — whether to send invitation emails (default: false)
*/
createEventSeries(title: string, startTime: Date, endTime: Date, recurrence: EventRecurrence, options: any): CalendarEventSeries;
/**
* Deletes the calendar permanently. A user can only delete a calendar they own.
*
* // Creates a calendar to delete.
* const calendar = CalendarApp.createCalendar('Test');
*
* // Deletes the 'Test' calendar permanently.
* calendar.deleteCalendar();
*
* Throws:
* - Error — if this is an imported calendar.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#deleteCalendar()
*/
deleteCalendar(): void;
/**
* Gets the color of the calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Gets the color of the calendar and logs it to the console.
* // For the default calendar, you can use CalendarApp.getColor() instead.
* const calendarColor = calendar.getColor();
* console.log(calendarColor);
*
* Return:
* - String — A hexadecimal color string ("#rrggbb").
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getColor()
*/
getColor(): string;
/**
* Gets the description of the calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Sets the description of the calendar to 'Test description.'
* calendar.setDescription('Test description');
*
* // Gets the description of the calendar and logs it to the console.
* // For the default calendar, you can use CalendarApp.getDescription() instead.
* const description = calendar.getDescription();
* console.log(description);
*
* Return:
* - String — The description of this calendar.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getDescription()
*/
getDescription(): string;
/**
* Gets the event with the given ID. If the series belongs to a calendar other than the default calendar, this method must be called from that calendar. Calling CalendarApp.getEventById(iCalId) only returns an event in the default calendar.
* Multiple events may have the same ID if they are part of an event series. In this case this method returns only the first event from that series.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Creates an event for the moon landing.
* const event = calendar.createEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969 20:05:00 UTC'),
* new Date('July 20, 1969 20:17:00 UTC'),
* );
*
* // Gets the calendar event ID and logs it to the console.
* const iCalId = event.getId();
* console.log(iCalId);
*
* // Gets the event by its ID and logs the title of the event to the console.
* // For the default calendar, you can use CalendarApp.getEventById(iCalId)
* // instead.
* const myEvent = calendar.getEventById(iCalId);
* console.log(myEvent.getTitle());
*
* Return:
* - CalendarEvent — The event with the given ID, or null if the event doesn't exist or the user cannot access it.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEventById(String)
* @param iCalId ID of the event.
*/
getEventById(iCalId: string): CalendarEvent;
/**
* Gets the event series with the given ID. If the ID given is for a single CalendarEvent, then a CalendarEventSeries is returned with a single event in the series. Note that if the event series belongs to a calendar other than the default calendar, this method must be called from that Calendar; calling CalendarApp.getEventSeriesById(iCalId) directly only returns an event series that exists in the default calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Creates an event series for a daily team meeting from 1 PM to 2 PM.
* // The series adds the daily event from January 1, 2023 through December 31,
* // 2023.
* const eventSeries = calendar.createEventSeries(
* 'Team meeting',
* new Date('Jan 1, 2023 13:00:00'),
* new Date('Jan 1, 2023 14:00:00'),
* CalendarApp.newRecurrence().addDailyRule().until(new Date('Jan 1, 2024')),
* );
*
* // Gets the ID of the event series.
* const iCalId = eventSeries.getId();
*
* // Gets the event series by its ID and logs the series title to the console.
* // For the default calendar, you can use CalendarApp.getEventSeriesById(iCalId)
* // instead.
* console.log(calendar.getEventSeriesById(iCalId).getTitle());
*
* Return:
* - CalendarEventSeries — The series with the given ID, or null if the series doesn't exist or the user cannot access it.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEventSeriesById(String)
* @param iCalId ID of the event series.
*/
getEventSeriesById(iCalId: string): CalendarEventSeries;
/**
* Gets all events that occur within a given time range.
* This method returns events that start during the given time range, end during the time range, or encompass the time range. If no time zone is specified, the time values are interpreted in the context of the script's time zone, which may be different from the calendar's time zone.
*
* // Determines how many events are happening in the next two hours.
* const now = new Date();
* const twoHoursFromNow = new Date(now.getTime() + 2 * 60 * 60 * 1000);
* const events = CalendarApp.getDefaultCalendar().getEvents(now, twoHoursFromNow);
* Logger.log(`Number of events: ${events.length}`);
*
* Return:
* - CalendarEvent[] — the events that occur within the time range
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEvents(Date,Date)
* @param startTime the start of the time range
* @param endTime the end of the time range, non-inclusive
*/
getEvents(startTime: Date, endTime: Date): CalendarEvent[];
/**
* Gets all events that occur within a given time range and meet the specified criteria.
* This method returns events that start during the given time range, ends during the time range, or encompasses the time range. If no time zone is specified, the time values are interpreted in the context of the script's time zone, which may be different from the calendar's time zone.
* Be aware that filtering on author, search, or statusFilters takes place after applying start and max. This means that the number of events returned may be less than max, even though additional events meet the criteria.
*
* // Determines how many events are happening in the next two hours that contain
* // the term "meeting".
* const now = new Date();
* const twoHoursFromNow = new Date(now.getTime() + 2 * 60 * 60 * 1000);
* const events = CalendarApp.getDefaultCalendar().getEvents(
* now,
* twoHoursFromNow,
* {search: 'meeting'},
* );
* Logger.log(`Number of events: ${events.length}`);
*
* Return:
* - CalendarEvent[] — the events that take place within the time range and match the criteria
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEvents(Date,Date,Object)
* @param startTime the start of the time range
* @param endTime the end of the time range, non-inclusive
* @param options a JavaScript object that specifies advanced parameters, as listed below
*
* Advanced parameters:
* - start (Integer) — the index of the first event to return
* - max (Integer) — the maximum number of events to return
* - author (String) — an email address used to filter results by the event creator
* - search (String) — a full-text search query used to filter results
* - statusFilters[] (GuestStatus) — an array of statuses used to filter results
*/
getEvents(startTime: Date, endTime: Date, options: any): CalendarEvent[];
/**
* Gets all events that occur on a given day.
* This method returns events if they start during the given day, end during the day, or encompass the day.
* Note that only the date portion of the Date object is used, and the time portion is ignored. The date is interpreted as midnight that day to midnight the next day in the calendar's time zone.
*
* // Determines how many events are happening today.
* const today = new Date();
* const events = CalendarApp.getDefaultCalendar().getEventsForDay(today);
* Logger.log(`Number of events: ${events.length}`);
*
* Return:
* - CalendarEvent[] — the events that occur on the given date
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEventsForDay(Date)
* @param date the date to retrieve events for (only the day is used; the time is ignored)
*/
getEventsForDay(date: Date): CalendarEvent[];
/**
* Gets all events that occur on a given day and meet specified criteria.
* This method returns events if they start during the given day, end during the day, or encompass the day.
* Note that only the date portion of the Date object is used, and the time portion is ignored. The date is interpreted as midnight that day to midnight the next day in the calendar's time zone.
* Be aware that filtering on author, search, or statusFilters takes place after applying start and max. This means that the number of events returned may be less than max, even though additional events meet the criteria.
*
* // Determines how many events are happening today and contain the term
* // "meeting".
* const today = new Date();
* const events = CalendarApp.getDefaultCalendar().getEventsForDay(today, {
* search: 'meeting',
* });
* Logger.log(`Number of events: ${events.length}`);
*
* Return:
* - CalendarEvent[] — the events that occur on the given date and match the criteria
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getEventsForDay(Date,Object)
* @param date the date to retrieve events for (only the day is used; the time is ignored)
* @param options advanced filtering options
*
* Advanced parameters:
* - start (Integer) — the index of the first event to return
* - max (Integer) — the maximum number of events to return
* - author (String) — an email address used to filter results by the event creator
* - search (String) — a full-text search query used to filter results
* - statusFilters[] (GuestStatus) — an array of statuses used to filter results
*/
getEventsForDay(date: Date, options: any): CalendarEvent[];
/**
* Gets the ID of the calendar. The ID for a user's default calendar is their email address.
*
* // Opens the calendar by its ID.
* // To get the user's default calendar, use CalendarApp.getDefaultCalendar().
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Gets the ID of the calendar and logs it to the console.
* const calendarId = calendar.getId();
* console.log(calendarId);
*
* Return:
* - String — The ID of the calendar.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getId()
*/
getId(): string;
/**
* Gets the name of the calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Gets the name of the calendar and logs it to the console.
* // For the default calendar, you can use CalendarApp.getName() instead.
* const calendarName = calendar.getName();
* console.log(calendarName);
*
* Return:
* - String — This calendar's name.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getName()
*/
getName(): string;
/**
* Gets the time zone of the calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Gets the time zone of the calendar and logs it to the console.
* // For the default calendar, you can use CalendarApp.getTimeZone() instead.
* const timeZone = calendar.getTimeZone();
* console.log(timeZone);
*
* Return:
* - String — The time zone, specified in "long" format (for example, "America/New_York", as listed by Joda.org).
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#getTimeZone()
*/
getTimeZone(): string;
/**
* Determines whether the calendar is hidden in the user interface.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Determines whether the calendar is hidden in the user interface and logs it
* // to the console. For the default calendar, you can use CalendarApp.isHidden()
* // instead.
* const isHidden = calendar.isHidden();
* console.log(isHidden);
*
* Return:
* - Boolean — true if the calendar is hidden in the user interface; false if it isn't.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#isHidden()
*/
isHidden(): boolean;
/**
* Determines whether the calendar is the primary calendar for the effective user.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Determines whether the calendar is the default calendar for
* // the effective user and logs it to the console.
* // For the default calendar, you can use CalendarApp.isMyPrimaryCalendar()
* // instead.
* const isMyPrimaryCalendar = calendar.isMyPrimaryCalendar();
* console.log(isMyPrimaryCalendar);
*
* Return:
* - Boolean — true if the calendar is the default calendar for the effective user; false if it isn't.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#isMyPrimaryCalendar()
*/
isMyPrimaryCalendar(): boolean;
/**
* Determines whether the calendar is owned by you.
*
* // Gets a calendar by its ID. To get the user's default calendar, use
* // CalendarApp.getDefault() instead.
* // TODO(developer): Replace the ID with the calendar ID that you want to use.
* const calendar = CalendarApp.getCalendarById(
* 'abc123456@group.calendar.google.com',
* );
*
* // Determines whether the calendar is owned by you and logs it.
* console.log(calendar.isOwnedByMe());
*
* Return:
* - Boolean — true if the calendar is owned by you; false if not.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#isOwnedByMe()
*/
isOwnedByMe(): boolean;
/**
* Determines whether the calendar's events are displayed in the user interface.
*
* // Gets the user's default calendar. To get a different calendar,
* // use getCalendarById() instead.
* const calendar = CalendarApp.getDefaultCalendar();
*
* // Determines whether the calendar's events are displayed in the user interface
* // and logs it.
* console.log(calendar.isSelected());
*
* Return:
* - Boolean — true if the calendar's events are displayed in the user interface; false if not
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.googleapis.com/auth/calendar.readonly
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#isSelected()
*/
isSelected(): boolean;
/**
* Sets the color of the calendar.
*
* // Opens the calendar by its ID.
* // TODO(developer): Replace the ID with your own.
* const calendar = CalendarApp.getCalendarById('222larabrown@gmail.com');
*
* // Sets the color of the calendar to pink using the Calendar Color enum.
* // For the default calendar, you can use CalendarApp.setColor() instead.
* calendar.setColor(CalendarApp.Color.PINK);
*
* Return:
* - Calendar — This calendar for chaining.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setColor(String)
* @param color A CalendarApp.Color or a hexadecimal color string ("#rrggbb").
*/
setColor(color: string): Calendar;
/**
* Sets the description of a calendar.
*
* // Gets the user's default calendar. To get a different calendar,
* // use getCalendarById() instead.
* const calendar = CalendarApp.getDefaultCalendar();
*
* // Sets the description of the calendar.
* // TODO(developer): Update the string with the description that you want to use.
* calendar.setDescription('Updated calendar description.');
*
* Return:
* - Calendar — this calendar for chaining
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setDescription(String)
* @param description the description of this calendar
*/
setDescription(description: string): Calendar;
/**
* Sets whether the calendar is visible in the user interface.
*
* Return:
* - Calendar — this calendar for chaining
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setHidden(Boolean)
* @param hidden true to hide the calendar in the user interface; false to show it
*/
setHidden(hidden: boolean): Calendar;
/**
* Sets the name of the calendar.
*
* // Gets the user's default calendar. To get a different calendar,
* // use getCalendarById() instead.
* const calendar = CalendarApp.getDefaultCalendar();
*
* // Sets the name of the calendar.
* // TODO(developer): Update the string with the name that you want to use.
* calendar.setName('Example calendar name');
*
* Return:
* - Calendar — this calendar for chaining
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setName(String)
* @param name the new name
*/
setName(name: string): Calendar;
/**
* Sets whether the calendar's events are displayed in the user interface.
*
* // Gets the user's default calendar. To get a different calendar,
* // use getCalendarById() instead.
* const calendar = CalendarApp.getDefaultCalendar();
*
* // Selects the calendar so that its events are displayed in the user interface.
* // To unselect the calendar, set the parameter to false.
* calendar.setSelected(true);
*
* Return:
* - Calendar — this calendar for chaining
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setSelected(Boolean)
* @param selected true to show the calendar's events in the user interface; false to hide them
*/
setSelected(selected: boolean): Calendar;
/**
* Sets the time zone of the calendar.
*
* // Gets the user's default calendar. To get a different calendar,
* // use getCalendarById() instead.
* const calendar = CalendarApp.getDefaultCalendar();
*
* // Sets the time zone of the calendar to America/New York (US/Eastern) time.
* calendar.setTimeZone('America/New_York');
*
* Return:
* - Calendar — This calendar for chaining.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#setTimeZone(String)
* @param timeZone The time zone, specified in "long" format (such as "America/New_York", as listed by Joda.org).
*/
setTimeZone(timeZone: string): Calendar;
/**
* Unsubscribes the user from a calendar. A user can't unsubscribe from calendars listed under the My calendars list. They can unsubscribe from calendars listed under Other calendars.
*
* // Gets the calendar by its ID.
* // TODO(developer): Replace the calendar ID with the calendar ID that you want
* // to get.
* const calendar = CalendarApp.getCalendarById(
* 'abc123456@group.calendar.google.com',
* );
*
* // Unsubscribes the user from the calendar.
* const result = calendar.unsubscribeFromCalendar();
*
* Throws:
* - Error — if this is an owned calendar
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
* - https://www.googleapis.com/auth/calendar
* - https://www.google.com/calendar/feeds
*
* https://developers.google.com/apps-script/reference/calendar/calendar#unsubscribeFromCalendar()
*/
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;
EventTransparency: typeof EventTransparency;
EventType: typeof EventType;
GuestStatus: typeof GuestStatus;
Month: typeof Base.Month;
Visibility: typeof Visibility;
Weekday: typeof Base.Weekday;
/**
* Creates a new all-day event.
*
* // Creates an all-day event for the moon landing and logs the ID.
* const event = CalendarApp.getDefaultCalendar().createAllDayEvent(
* 'Apollo 11 Landing',
* new Date('July 20, 1969'),
* );
* Logger.log(`Event ID: ${event.getId()}`);
*
* Return:
* - CalendarEvent — The created event.
*
* Authorization:
*
* Scripts that use this method require authorization with one or more of the following scopes or a