Class Calendar

  • TheCalendar class represents a calendar owned or subscribed to by the user and provides methods for managing events.

  • You can create all-day events, standard events, and recurring event series with various options like description, location, and guests.

  • TheCalendar class allows you to retrieve events by ID, time range, or day, with options for filtering results.

  • You can get and set calendar properties such as color, description, name, and time zone.

  • The class also provides methods to check calendar visibility, ownership, and selection status, as well as delete or unsubscribe from a calendar.

Calendar

Represents a calendar that the user owns or is subscribed to.

Methods

MethodReturn typeBrief description
createAllDayEvent(title, date)CalendarEventCreates a new all-day event.
createAllDayEvent(title, startDate, endDate)CalendarEventCreates a new all-day event that can span multiple days.
createAllDayEvent(title, startDate, endDate, options)CalendarEventCreates a new all-day event that can span multiple days.
createAllDayEvent(title, date, options)CalendarEventCreates a new all-day event.
createAllDayEventSeries(title, startDate, recurrence)CalendarEventSeriesCreates a new all-day event series.
createAllDayEventSeries(title, startDate, recurrence, options)CalendarEventSeriesCreates a new all-day event series.
createEvent(title, startTime, endTime)CalendarEventCreates a new event.
createEvent(title, startTime, endTime, options)CalendarEventCreates a new event.
createEventFromDescription(description)CalendarEventCreates an event from a free-form description.
createEventSeries(title, startTime, endTime, recurrence)CalendarEventSeriesCreates a new event series.
createEventSeries(title, startTime, endTime, recurrence, options)CalendarEventSeriesCreates a new event series.
deleteCalendar()voidDeletes the calendar permanently.
getColor()StringGets the color of the calendar.
getDescription()StringGets the description of the calendar.
getEventById(iCalId)CalendarEventGets the event with the given ID.
getEventSeriesById(iCalId)CalendarEventSeriesGets the event series with the given ID.
getEvents(startTime, endTime)CalendarEvent[]Gets all events that occur within a given time range.
getEvents(startTime, endTime, options)CalendarEvent[]Gets all events that occur within a given time range and meet the specified criteria.
getEventsForDay(date)CalendarEvent[]Gets all events that occur on a given day.
getEventsForDay(date, options)CalendarEvent[]Gets all events that occur on a given day and meet specified criteria.
getId()StringGets the ID of the calendar.
getName()StringGets the name of the calendar.
getTimeZone()StringGets the time zone of the calendar.
isHidden()BooleanDetermines whether the calendar is hidden in the user interface.
isMyPrimaryCalendar()BooleanDetermines whether the calendar is the primary calendar for the effective user.
isOwnedByMe()BooleanDetermines whether the calendar is owned by you.
isSelected()BooleanDetermines whether the calendar's events are displayed in the user interface.
setColor(color)CalendarSets the color of the calendar.
setDescription(description)CalendarSets the description of a calendar.
setHidden(hidden)CalendarSets whether the calendar is visible in the user interface.
setName(name)CalendarSets the name of the calendar.
setSelected(selected)CalendarSets whether the calendar's events are displayed in the user interface.
setTimeZone(timeZone)CalendarSets the time zone of the calendar.
unsubscribeFromCalendar()voidUnsubscribes the user from a calendar.

Detailed documentation

createAllDayEvent(title, date)

Creates a new all-day event.

// Creates an all-day event for the moon landing and logs the ID.constevent=CalendarApp.getDefaultCalendar().createAllDayEvent('Apollo 11 Landing',newDate('July 20, 1969'),);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringThe title of the event.
dateDateThe date of the event (only the day is used; the time is ignored).

Return

CalendarEvent — The created event.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createAllDayEvent(title, startDate, endDate)

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.constevent=CalendarApp.getDefaultCalendar().createAllDayEvent('Woodstock Festival',newDate('August 15, 1969'),newDate('August 18, 1969'),);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringThe title of the event.
startDateDateThe date when the event starts (only the day is used; the time is ignored).
endDateDateThe date when the event ends (only the day is used; the time is ignored). The end date is exclusive.

Return

CalendarEvent — The created event.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createAllDayEvent(title, startDate, endDate, options)

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.constevent=CalendarApp.getDefaultCalendar().createAllDayEvent('Woodstock Festival',newDate('August 15, 1969'),newDate('August 18, 1969'),{location:'Bethel, White Lake, New York, U.S.',sendInvites:true},);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringThe title of the event.
startDateDateThe date when the event starts (only the day is used; the time is ignored).
endDateDateThe date when the event ends (only the day is used; the time is ignored). The end date is exclusive.
optionsObjectA JavaScript object that specifies advanced parameters, as listed below.

Advanced parameters

NameTypeDescription
descriptionStringThe description of the event.
locationStringThe location of the event.
guestsStringA comma-separated list of email addresses that should be added as guests.
sendInvitesBooleanWhether to send invitation emails (default:false).

Return

CalendarEvent — The created event.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createAllDayEvent(title, date, options)

Creates a new all-day event.

// Creates an all-day event for the moon landing and logs the ID.constevent=CalendarApp.getDefaultCalendar().createAllDayEvent('Apollo 11 Landing',newDate('July 20, 1969'),{location:'The Moon'},);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringThe title of the event.
dateDateThe date of the event (only the day is used; the time is ignored).
optionsObjectA JavaScript object that specifies advanced parameters, as listed below.

Advanced parameters

NameTypeDescription
descriptionStringThe description of the event.
locationStringThe location of the event.
guestsStringA comma-separated list of email addresses that should be added as guests.
sendInvitesBooleanWhether to send invitation emails (default:false).

Return

CalendarEvent — The created event.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createAllDayEventSeries(title, startDate, recurrence)

Creates a new all-day event series.

// Creates an event series for a no-meetings day, taking place every Wednesday// in 2013.consteventSeries=CalendarApp.getDefaultCalendar().createAllDayEventSeries('No Meetings',newDate('January 2, 2013 03:00:00 PM EST'),CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY).until(newDate('January 1, 2014')),);Logger.log(`Event Series ID:${eventSeries.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the events in the series
startDateDatethe date of the first event in the series (only the day is used; the time is ignored)
recurrenceEventRecurrencethe recurrence settings of the event series

Return

CalendarEventSeries — the created event series

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createAllDayEventSeries(title, startDate, recurrence, options)

Creates a new all-day event series.

// Creates an event series for a no-meetings day, taking place every Wednesday// in 2013.consteventSeries=CalendarApp.getDefaultCalendar().createAllDayEventSeries('No Meetings',newDate('January 2, 2013 03:00:00 PM EST'),CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY).until(newDate('January 1, 2014')),{guests:'everyone@example.com'},);Logger.log(`Event Series ID:${eventSeries.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the events in the series
startDateDatethe date of the first event in the series (only the day is used; the time is ignored)
recurrenceEventRecurrencethe recurrence settings of the event series
optionsObjecta JavaScript object that specifies advanced parameters, as listed below

Advanced parameters

NameTypeDescription
descriptionStringthe description of the events in the series
locationStringthe location of the events in the series
guestsStringa comma-separated list of email addresses that should be added as guests to the events in the series
sendInvitesBooleanwhether to send invitation emails (default:false)

Return

CalendarEventSeries — the created event series

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createEvent(title, startTime, endTime)

Creates a new event.

If no time zone is specified, the time values are interpreted in the context of the script'stime zone, which may be different than the calendar's time zone.

// Creates an event for the moon landing and logs the ID.constevent=CalendarApp.getDefaultCalendar().createEvent('Apollo 11 Landing',newDate('July 20, 1969 20:00:00 UTC'),newDate('July 21, 1969 21:00:00 UTC'),);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the event
startTimeDatethe date and time when the event starts
endTimeDatethe date and time when the event ends

Return

CalendarEvent — the created event

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createEvent(title, startTime, endTime, options)

Creates a new event.

If no time zone is specified, the time values are interpreted in the context of the script'stime zone, which may be different than the calendar's time zone.

// Creates an event for the moon landing and logs the ID.constevent=CalendarApp.getDefaultCalendar().createEvent('Apollo 11 Landing',newDate('July 20, 1969 20:00:00 UTC'),newDate('July 20, 1969 21:00:00 UTC'),{location:'The Moon'},);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the event
startTimeDatethe date and time when the event starts
endTimeDatethe date and time when the event ends
optionsObjecta JavaScript object that specifies advanced parameters, as listed below

Advanced parameters

NameTypeDescription
descriptionStringthe description of the event
locationStringthe location of the event
guestsStringa comma-separated list of email addresses that should be added as guests
sendInvitesBooleanwhether to send invitation emails (default:false)

Return

CalendarEvent — the created event

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createEventFromDescription(description)

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.constevent=CalendarApp.getDefaultCalendar().createEventFromDescription('Lunch with Mary, Friday at 1PM',);Logger.log(`Event ID:${event.getId()}`);

Parameters

NameTypeDescription
descriptionStringa free-form description of the event

Return

CalendarEvent — the created event

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createEventSeries(title, startTime, endTime, recurrence)

Creates a new event series.

// Creates an event series for a team meeting, taking place every Tuesday and// Thursday in 2013.consteventSeries=CalendarApp.getDefaultCalendar().createEventSeries('Team Meeting',newDate('January 1, 2013 03:00:00 PM EST'),newDate('January 1, 2013 04:00:00 PM EST'),CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekdays([CalendarApp.Weekday.TUESDAY,CalendarApp.Weekday.THURSDAY]).until(newDate('January 1, 2014')),);Logger.log(`Event Series ID:${eventSeries.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the events in the series
startTimeDatethe date and time when the first event in the series starts
endTimeDatethe date and time when the first event in the series ends
recurrenceEventRecurrencethe recurrence settings of the event series

Return

CalendarEventSeries — the created event series

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

createEventSeries(title, startTime, endTime, recurrence, options)

Creates a new event series.

// Creates an event series for a team meeting, taking place every Tuesday and// Thursday in 2013.consteventSeries=CalendarApp.getDefaultCalendar().createEventSeries('Team Meeting',newDate('January 1, 2013 03:00:00 PM EST'),newDate('January 1, 2013 04:00:00 PM EST'),CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekdays([CalendarApp.Weekday.TUESDAY,CalendarApp.Weekday.THURSDAY]).until(newDate('January 1, 2014')),{location:'Conference Room'},);Logger.log(`Event Series ID:${eventSeries.getId()}`);

Parameters

NameTypeDescription
titleStringthe title of the events in the series
startTimeDatethe date and time when the first event in the series starts
endTimeDatethe date and time when the first event in the series ends
recurrenceEventRecurrencethe recurrence settings of the event series
optionsObjecta JavaScript object that specifies advanced parameters, as listed below

Advanced parameters

NameTypeDescription
descriptionStringthe description of the events in the series
locationStringthe location of the events in the series
guestsStringa comma-separated list of email addresses that should be added as guests to the events in the series
sendInvitesBooleanwhether to send invitation emails (default:false)

Return

CalendarEventSeries — the created event series

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

deleteCalendar()

Deletes the calendar permanently. A user can only delete a calendar they own.

// Creates a calendar to delete.constcalendar=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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

getColor()

Gets the color of the calendar.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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.constcalendarColor=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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getDescription()

Gets the description of the calendar.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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.constdescription=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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEventById(iCalId)

Gets the event with the given ID. If the series belongs to a calendar other than the defaultcalendar, this method must be called from that calendar. CallingCalendarApp.getEventById(iCalId) onlyreturns an event in the default calendar.

Multiple events may have the same ID if they are part of an event series. In this case thismethod returns only the first event from that series.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=CalendarApp.getCalendarById('222larabrown@gmail.com');// Creates an event for the moon landing.constevent=calendar.createEvent('Apollo 11 Landing',newDate('July 20, 1969 20:05:00 UTC'),newDate('July 20, 1969 20:17:00 UTC'),);// Gets the calendar event ID and logs it to the console.constiCalId=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.constmyEvent=calendar.getEventById(iCalId);console.log(myEvent.getTitle());

Parameters

NameTypeDescription
iCalIdStringID of the event.

Return

CalendarEvent — The event with the given ID, ornull 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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEventSeriesById(iCalId)

Gets the event series with the given ID. If the ID given is for a singleCalendarEvent,then aCalendarEventSeries is returned with a single event in the series. Note that ifthe event series belongs to a calendar other than the default calendar, this method must becalled from thatCalendar; callingCalendarApp.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.constcalendar=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.consteventSeries=calendar.createEventSeries('Team meeting',newDate('Jan 1, 2023 13:00:00'),newDate('Jan 1, 2023 14:00:00'),CalendarApp.newRecurrence().addDailyRule().until(newDate('Jan 1, 2024')),);// Gets the ID of the event series.constiCalId=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());

Parameters

NameTypeDescription
iCalIdStringID of the event series.

Return

CalendarEventSeries — The series with the given ID, ornull 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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEvents(startTime, endTime)

Gets all events that occur within a given time range.

This method returns events that start during the given time range, end during the timerange, or encompass the time range. If no time zone is specified, the time values areinterpreted in the context of the script's time zone, which may be different from thecalendar's time zone.

// Determines how many events are happening in the next two hours.constnow=newDate();consttwoHoursFromNow=newDate(now.getTime()+2*60*60*1000);constevents=CalendarApp.getDefaultCalendar().getEvents(now,twoHoursFromNow);Logger.log(`Number of events:${events.length}`);

Parameters

NameTypeDescription
startTimeDatethe start of the time range
endTimeDatethe end of the time range, non-inclusive

Return

CalendarEvent[] — the events that occur within the time range

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEvents(startTime, endTime, options)

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 timerange, or encompasses the time range. If no time zone is specified, the time values areinterpreted in the context of the script's time zone, which may be different from thecalendar's time zone.

Be aware that filtering onauthor,search, orstatusFilters takesplace after applyingstart andmax. This means that the number of eventsreturned may be less thanmax, even though additional events meet the criteria.

// Determines how many events are happening in the next two hours that contain// the term "meeting".constnow=newDate();consttwoHoursFromNow=newDate(now.getTime()+2*60*60*1000);constevents=CalendarApp.getDefaultCalendar().getEvents(now,twoHoursFromNow,{search:'meeting'},);Logger.log(`Number of events:${events.length}`);

Parameters

NameTypeDescription
startTimeDatethe start of the time range
endTimeDatethe end of the time range, non-inclusive
optionsObjecta JavaScript object that specifies advanced parameters, as listed below

Advanced parameters

NameTypeDescription
startIntegerthe index of the first event to return
maxIntegerthe maximum number of events to return
authorStringan email address used to filter results by the event creator
searchStringa full-text search query used to filter results
statusFilters[]GuestStatusan array of statuses used to filter results

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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEventsForDay(date)

Gets all events that occur on a given day.

This method returns events if they start during the given day, end during the day, orencompass 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 timezone.

// Determines how many events are happening today.consttoday=newDate();constevents=CalendarApp.getDefaultCalendar().getEventsForDay(today);Logger.log(`Number of events:${events.length}`);

Parameters

NameTypeDescription
dateDatethe date to retrieve events for (only the day is used; the time is ignored)

Return

CalendarEvent[] — the events that occur on the given date

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getEventsForDay(date, options)

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, orencompass 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 timezone.

Be aware that filtering onauthor,search, orstatusFilters takesplace after applyingstart andmax. This means that the number of eventsreturned may be less thanmax, even though additional events meet the criteria.

// Determines how many events are happening today and contain the term// "meeting".consttoday=newDate();constevents=CalendarApp.getDefaultCalendar().getEventsForDay(today,{search:'meeting',});Logger.log(`Number of events:${events.length}`);

Parameters

NameTypeDescription
dateDatethe date to retrieve events for (only the day is used; the time is ignored)
optionsObjectadvanced filtering options

Advanced parameters

NameTypeDescription
startIntegerthe index of the first event to return
maxIntegerthe maximum number of events to return
authorStringan email address used to filter results by the event creator
searchStringa full-text search query used to filter results
statusFilters[]GuestStatusan array of statuses used to filter results

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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getId()

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.constcalendar=CalendarApp.getCalendarById('222larabrown@gmail.com');// Gets the ID of the calendar and logs it to the console.constcalendarId=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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getName()

Gets the name of the calendar.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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.constcalendarName=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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

getTimeZone()

Gets the time zone of the calendar.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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.consttimeZone=calendar.getTimeZone();console.log(timeZone);

Return

String — The time zone, specified in "long" format (for example, "America/New_York", as listed byJoda.org).

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

isHidden()

Determines whether the calendar is hidden in the user interface.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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.constisHidden=calendar.isHidden();console.log(isHidden);

Return

Booleantrue 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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

isMyPrimaryCalendar()

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.constcalendar=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.constisMyPrimaryCalendar=calendar.isMyPrimaryCalendar();console.log(isMyPrimaryCalendar);

Return

Booleantrue 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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

isOwnedByMe()

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.constcalendar=CalendarApp.getCalendarById('abc123456@group.calendar.google.com',);// Determines whether the calendar is owned by you and logs it.console.log(calendar.isOwnedByMe());

Return

Booleantrue if the calendar is owned by you;false if not.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

isSelected()

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.constcalendar=CalendarApp.getDefaultCalendar();// Determines whether the calendar's events are displayed in the user interface// and logs it.console.log(calendar.isSelected());

Return

Booleantrue 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 followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.google.com/calendar/feeds

setColor(color)

Sets the color of the calendar.

// Opens the calendar by its ID.// TODO(developer): Replace the ID with your own.constcalendar=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);

Parameters

NameTypeDescription
colorStringACalendarApp.Color or a hexadecimal color string ("#rrggbb").

Return

Calendar — This calendar for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

setDescription(description)

Sets the description of a calendar.

// Gets the user's default calendar. To get a different calendar,// use getCalendarById() instead.constcalendar=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.');

Parameters

NameTypeDescription
descriptionStringthe description of this calendar

Return

Calendar — this calendar for chaining

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

setHidden(hidden)

Sets whether the calendar is visible in the user interface.

Parameters

NameTypeDescription
hiddenBooleantrue to hide the calendar in the user interface;false to show it

Return

Calendar — this calendar for chaining

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

setName(name)

Sets the name of the calendar.

// Gets the user's default calendar. To get a different calendar,// use getCalendarById() instead.constcalendar=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');

Parameters

NameTypeDescription
nameStringthe new name

Return

Calendar — this calendar for chaining

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

setSelected(selected)

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.constcalendar=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);

Parameters

NameTypeDescription
selectedBooleantrue to show the calendar's events in the user interface;false to hide them

Return

Calendar — this calendar for chaining

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

setTimeZone(timeZone)

Sets the time zone of the calendar.

// Gets the user's default calendar. To get a different calendar,// use getCalendarById() instead.constcalendar=CalendarApp.getDefaultCalendar();// Sets the time zone of the calendar to America/New York (US/Eastern) time.calendar.setTimeZone('America/New_York');

Parameters

NameTypeDescription
timeZoneStringThe time zone, specified in "long" format (such as "America/New_York", as listed byJoda.org).

Return

Calendar — This calendar for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

unsubscribeFromCalendar()

Unsubscribes the user from a calendar. A user can't unsubscribe from calendars listed under theMy calendars list. They can unsubscribe from calendars listed underOthercalendars.

// Gets the calendar by its ID.// TODO(developer): Replace the calendar ID with the calendar ID that you want// to get.constcalendar=CalendarApp.getCalendarById('abc123456@group.calendar.google.com',);// Unsubscribes the user from the calendar.constresult=calendar.unsubscribeFromCalendar();

Throws

Error — if this is an owned calendar

Authorization

Scripts that use this method require authorization with one or more of the followingscopes or appropriate scopes from therelated REST API:

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-11 UTC.