Class CalendarEvent

日历活动

表示单个日历活动。

方法

方法返回类型简介
addEmailReminder(minutesBefore)CalendarEvent为事件添加新的电子邮件提醒。
addGuest(email)CalendarEvent向活动添加邀请对象。
addPopupReminder(minutesBefore)CalendarEvent向事件添加了新的弹出式通知。
addSmsReminder(minutesBefore)CalendarEvent为活动添加新的短信提醒。
anyoneCanAddSelf()Boolean确定用户能否将自己添加为日历活动的邀请对象。
deleteEvent()void删除日历活动。
deleteTag(key)CalendarEvent从事件中删除键值对代码。
getAllDayEndDate()Date获取此全天日历活动的结束日期。
getAllDayStartDate()Date获取此全天日历活动的开始日期。
getAllTagKeys()String[]获取已在事件上设置的代码的所有键。
getColor()String返回日历活动的颜色。
getCreators()String[]获取活动的创建者。
getDateCreated()Date获取事件的创建日期。
getDescription()String获取事件的说明。
getEmailReminders()Integer[]获取活动的所有电子邮件提醒的分钟值。
getEndTime()Date获取此日历活动的结束日期和时间。
getEventSeries()CalendarEventSeries获取此活动所属的一系列周期性活动。
getEventType()EventType获取此事件的 EventType
getGuestByEmail(email)EventGuest根据电子邮件地址获取访客。
getGuestList()EventGuest[]获取活动的邀请对象(不包括活动所有者)。
getGuestList(includeOwner)EventGuest[]获取活动的邀请对象,可能包括活动所有者。
getId()String获取事件的唯一 iCalUID。
getLastUpdated()Date获取事件的上次更新日期。
getLocation()String获取活动的地点。
getMyStatus()GuestStatus获取有效用户的活动状态(例如“参加”或“受邀”)。
getOriginalCalendarId()String获取此活动最初创建时所用的日历的 ID。
getPopupReminders()Integer[]获取活动的所有弹出式提醒的分钟值。
getSmsReminders()Integer[]获取活动的所有短信提醒的分钟值。
getStartTime()Date获取此日历活动的开始日期和时间。
getTag(key)String获取事件的代码值。
getTitle()String获取活动的标题。
getTransparency()EventTransparency获取事件的透明度。
getVisibility()Visibility获取事件的公开范围。
guestsCanInviteOthers()Boolean确定邀请对象能否邀请其他邀请对象。
guestsCanModify()Boolean确定邀请对象是否可以修改活动。
guestsCanSeeGuests()Boolean确定来宾是否可以看到其他来宾。
isAllDayEvent()Boolean确定这是否为全天活动。
isOwnedByMe()Boolean确定您是否为活动的所有者。
isRecurringEvent()Boolean确定事件是否属于系列活动。
removeAllReminders()CalendarEvent从活动中移除所有提醒。
removeGuest(email)CalendarEvent从活动中移除邀请对象。
resetRemindersToDefault()CalendarEvent使用日历的默认设置重置提醒。
setAllDayDate(date)CalendarEvent设置活动的日期。
setAllDayDates(startDate, endDate)CalendarEvent设置活动的日期。
setAnyoneCanAddSelf(anyoneCanAddSelf)CalendarEvent设置非邀请对象是否可以将自己添加到活动。
setColor(color)CalendarEvent设置日历活动的颜色。
setDescription(description)CalendarEvent设置事件的说明。
setGuestsCanInviteOthers(guestsCanInviteOthers)CalendarEvent设置邀请对象能否邀请其他邀请对象。
setGuestsCanModify(guestsCanModify)CalendarEvent设置邀请对象是否可以修改活动。
setGuestsCanSeeGuests(guestsCanSeeGuests)CalendarEvent设置访客能否看到其他访客。
setLocation(location)CalendarEvent设置活动的地点。
setMyStatus(status)CalendarEvent设置有效用户的活动状态(例如“参加”或“受邀”)。
setTag(key, value)CalendarEvent在事件上设置键值对标记,以存储自定义元数据。
setTime(startTime, endTime)CalendarEvent设置活动的开始日期和时间以及结束日期和时间。
setTitle(title)CalendarEvent设置活动的标题。
setTransparency(transparency)CalendarEvent设置事件的透明度。
setVisibility(visibility)CalendarEvent设置事件的公开范围。

详细文档

addEmailReminder(minutesBefore)

为活动添加新的电子邮件提醒。提醒时间必须在事件发生前至少 5 分钟,最多 4 周(40320 分钟)。

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');

// Adds an email notification for 15 minutes before the event.
event.addEmailReminder(15);

参数

名称类型说明
minutesBeforeInteger活动开始前的分钟数

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

抛出

Error - 如果活动有超过 5 条提醒或时间不在法定范围内

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

addGuest(email)

向活动添加邀请对象。

// Example 1: Add a guest to one event
function addAttendeeToEvent() {
  // Replace the below values with your own
  const attendeeEmail =
      'user@example.com';  // Email address of the person you need to add
  const calendarId =
      'calendar_123@group.calendar.google.com';  // ID of calendar containing
  // event
  const eventId = '123abc';  // ID of event instance

  const calendar = CalendarApp.getCalendarById(calendarId);
  if (calendar === null) {
    // Calendar not found
    console.log('Calendar not found', calendarId);
    return;
  }
  const event = calendar.getEventById(eventId);
  if (event === null) {
    // Event not found
    console.log('Event not found', eventId);
    return;
  }
  event.addGuest(attendeeEmail);
}

// Example 2: Add a guest to all events on a calendar within a specified
// timeframe
function addAttendeeToAllEvents() {
  // Replace the following values with your own
  const attendeeEmail =
      'user@example.com';  // Email address of the person you need to add
  const calendarId =
      'calendar_123@group.calendar.google.com';  // ID of calendar with the
  // events
  const startDate =
      new Date('YYYY-MM-DD');  // The first date to add the guest to the events
  const endDate =
      new Date('YYYY-MM-DD');  // The last date to add the guest to the events

  const calendar = CalendarApp.getCalendarById(calendarId);
  if (calendar === null) {
    // Calendar not found
    console.log('Calendar not found', calendarId);
    return;
  }
  // Get the events within the specified timeframe
  const calEvents = calendar.getEvents(startDate, endDate);
  console.log(calEvents.length);  // Checks how many events are found
  // Loop through all events and add the attendee to each of them
  for (let i = 0; i < calEvents.length; i++) {
    const event = calEvents[i];
    event.addGuest(attendeeEmail);
  }
}

参数

名称类型说明
emailString访客的电子邮件地址。

返回

CalendarEvent - 此 CalendarEvent 用于链式调用。

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

addPopupReminder(minutesBefore)

向事件添加了新的弹出式通知。通知必须在事件发生前至少 5 分钟,最多 4 周(40320 分钟)发出。

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');

// Adds a pop-up notification for 15 minutes before the event.
event.addPopupReminder(15);

参数

名称类型说明
minutesBeforeInteger活动开始前的分钟数

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

addSmsReminder(minutesBefore)

为活动添加新的短信提醒。提醒时间必须在事件发生前至少 5 分钟,最多 4 周(40320 分钟)。

参数

名称类型说明
minutesBeforeInteger活动开始前的分钟数

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

抛出

Error - 如果活动有超过 5 条提醒或时间不在法定范围内

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

anyoneCanAddSelf()

确定用户能否将自己添加为日历活动的邀请对象。

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');

// Determines whether people can add themselves as guests to the event and logs
// it.
console.log(event.anyoneCanAddSelf());

返回

Boolean - 如果非邀请对象可以将自己添加到活动,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

deleteEvent()

删除日历活动。

// Gets an event by its ID.
// TODO(developer): Replace the string with the ID of the event that you want to
// delete.
const event = CalendarApp.getEventById('abc123456');

// Deletes the event.
event.deleteEvent();

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

deleteTag(key)

从事件中删除键值对代码。

参数

名称类型说明
keyString标记键

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getAllDayEndDate()

获取此全天日历活动的结束日期。(如果这不是全天活动,则此方法会抛出异常。)返回的 Date 表示事件结束后的第二天零点(在脚本的时区)。如需改用日历的时区,请调用 getEndTime()

// Gets the user's default calendar. To get a different calendar,
// use getCalendarById() instead.
const calendar = CalendarApp.getDefaultCalendar();

// Creates an event named 'My all-day event' for May 16, 2023.
const event = calendar.createAllDayEvent(
    'My all-day event',
    new Date('May 16, 2023'),
);

// Gets the event's end date and logs it.
const endDate = event.getAllDayEndDate();
console.log(endDate);

返回

Date - 此全天日历活动的结束日期

抛出

Error - 如果此活动不是全天活动

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getAllDayStartDate()

获取此全天日历活动的开始日期。(如果这不是全天活动,则此方法会抛出异常。)返回的 Date 表示活动开始当天(在脚本的时区)的零点。如需改用日历的时区,请调用 getStartTime()

// Gets the user's default calendar. To get a different calendar,
// use getCalendarById() instead.
const calendar = CalendarApp.getDefaultCalendar();

// Creates an event named 'My all-day event' for May 16, 2023.
const event = calendar.createAllDayEvent(
    'My all-day event',
    new Date('May 16, 2023'),
);

// Gets the event's start date and logs it.
const startDate = event.getAllDayStartDate();
console.log(startDate);

返回

Date - 此全天日历活动的开始日期

抛出

Error - 如果此活动不是全天活动

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getAllTagKeys()

获取已在事件上设置的代码的所有键。

返回

String[] - 字符串键数组

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getColor()

返回日历活动的颜色。

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');

// Gets the color of the calendar event and logs it.
const eventColor = event.getColor();
console.log(eventColor);

返回

String - 事件颜色的字符串表示形式,表示 CalendarApp.EventColor 中值的索引 (1-11)。

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getCreators()

获取活动的创建者。

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');

// Gets a list of the creators of the event and logs it.
console.log(event.getCreators());

返回

String[] - 活动创建者的电子邮件地址

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getDateCreated()

获取事件的创建日期。您必须有权访问该日历。

// Opens the calendar by using its ID.
// To get the user's default calendar use CalendarApp.getDefault() instead.
// TODO(developer): Replace the calendar ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 8:10 AM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 08:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the date that the
  // event was created and logs it.
  const eventCreated = event.getDateCreated();
  console.log(eventCreated);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Date - 创建日期

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getDescription()

获取事件的说明。您必须拥有对该日历的编辑权限。

// Opens the calendar by its ID.
// To get the user's default calendar use CalendarApp.getDefault() instead.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 4th, 2023 that takes
// place between 4:00 PM and 5:00 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 04, 2023 16:00:00'),
    new Date('Feb 04, 2023 17:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the description of the
  // event.
  event.setDescription('Important meeting');

  // Gets the description of the event and logs it.
  const description = event.getDescription();
  console.log(description);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

String - 说明

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getEmailReminders()

获取活动的所有电子邮件提醒的分钟值。您必须拥有对该日历的编辑权限。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 4th, 2023 that takes
// place between 5:00 PM and 6:00 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 04, 2023 15:00:00'),
    new Date('Feb 04, 2023 18:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, adds email reminders for
  // the user to be sent at 4 and 7 minutes before the event.
  event.addEmailReminder(4);
  event.addEmailReminder(7);

  // Gets the minute values for all email reminders that are set up for the user
  // for this event and logs it.
  const emailReminder = event.getEmailReminders();
  console.log(emailReminder);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Integer[] - 一个数组,其中每个值都对应于提醒触发的事件之前的分钟数

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getEndTime()

获取此日历活动的结束日期和时间。您必须有权访问该日历。对于非全天活动,这是定义为结束活动的时间瞬间。对于仅存储结束日期(而非日期和时间)的全天活动,此字段表示活动结束后的第二天凌晨零点(采用日历所在的时区)。这样一来,便可对所有类型的事件的结束时间进行有意义的比较;不过,这并不一定会保留原始的日期。

对于全天活动,几乎应始终调用 getAllDayEndDate(),而不是此方法。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:00 PM and 5:00 PM.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:00:00'),
    new Date('Feb 01, 2023 17:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the date and time at
  // which the event ends and logs it.
  console.log(event.getEndTime());
} else {
  // If no event exists within the given time frame, logs that info to the
  // console.
  console.log('No events exist for the specified range');
}

返回

Date - 此日历活动的结束时间

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getEventSeries()

获取此活动所属的一系列周期性活动。您必须有权访问该日历。系统会返回 CalendarEventSeries 对象,即使此活动不属于系列活动也是如此,以便您添加新的重复设置。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 18th, 2023 that takes
// place between 1:00 PM and 2:00 PM.
const event = calendar.getEvents(
    new Date('Feb 18, 2023 13:00:00'),
    new Date('Feb 18, 2023 14:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the event series for
  // the event and sets the color to pale green.
  event.getEventSeries().setColor(CalendarApp.EventColor.PALE_GREEN);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

CalendarEventSeries - 此活动所属的活动系列,如果此活动尚未属于任何系列,则为新的活动系列

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getEventType()

获取此事件的 EventType

// Opens the default calendar and logs all out-of-office events for the current day.
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEventsForDay(new Date());
console.log(events.filter(e => e.getEventType() === CalendarApp.EventType.OUT_OF_OFFICE));

返回

EventType - 事件类型。

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getGuestByEmail(email)

根据电子邮件地址获取访客。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 25th, 2023 that takes
// place between 5:00 PM and 5:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 25,2023 17:00:00'),
    new Date('Feb 25,2023 17:25:00'),
    )[0];

// Gets a guest by email address.
const guestEmailId = event.getGuestByEmail('alex@example.com');

// If the email address corresponds to an event guest, logs the email address.
if (guestEmailId) {
  console.log(guestEmailId.getEmail());
}

参数

名称类型说明
emailString访客的地址

返回

EventGuest - 访客,如果电子邮件地址与访客不符,则为 null

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getGuestList()

获取活动的邀请对象(不包括活动所有者)。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 25th, 2023 that takes
// place between 5:00 PM and 5:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 25,2023 17:00:00'),
    new Date('Feb 25,2023 17:25:00'),
    )[0];

// Adds two guests to the event by using their email addresses.
event.addGuest('alex@example.com');
event.addGuest('cruz@example.com');

// Gets the guests list for the event.
const guestList = event.getGuestList();

// Loops through the list to get all the guests and logs their email addresses.
for (const guest of guestList) {
  console.log(guest.getEmail());
}

返回

EventGuest[] - 房客的数组

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getGuestList(includeOwner)

获取活动的邀请对象,可能包括活动所有者。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 25th, 2023 that takes
// place between 5:00 PM and 5:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 25,2023 17:00:00'),
    new Date('Feb 25,2023 17:25:00'),
    )[0];

// Gets the guests list for the event, including the owner of the event.
const guestList = event.getGuestList(true);

// Loops through the list to get all the guests and logs it.
for (const guest of guestList) {
  console.log(guest.getEmail());
}

参数

名称类型说明
includeOwnerBoolean是否将所有者添加为访客

返回

EventGuest[] - 房客的数组

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getId()

获取事件的唯一 iCalUID。请注意,Google 日历 v3 APIGoogle 日历高级服务使用的 iCalUID 和事件 id 不相同,不能互换使用。它们在语义上的一项差异是,在周期性事件中,同一事件的所有出现都具有不同的 ids,但它们都具有相同的 iCalUID。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for January 5th, 2023 that takes place
// between 9:00 AM and 9:25 AM.
// For an event series, use calendar.getEventSeriesById('abc123456@google.com');
// and replace the series ID with your own.
const event = calendar.getEvents(
    new Date('Jan 05, 2023 09:00:00'),
    new Date('Jan 05, 2023 09:25:00'),
    )[0];

// Gets the ID of the event and logs it.
console.log(event.getId());

返回

String - 活动的 iCalUID

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getLastUpdated()

获取事件的上次更新日期。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:00 PM and 5:00 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:00:00'),
    new Date('Feb 01, 2023 17:00:00'),
    )[0];

// Gets the date the event was last updated and logs it.
const eventUpdatedDate = event.getLastUpdated();
console.log(eventUpdatedDate);

返回

Date - 上次更新日期

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getLocation()

获取活动的地点。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the location of the
  // event to Mumbai.
  event.setLocation('Mumbai');

  // Gets the location of the event and logs it.
  const eventLocation = event.getLocation();
  console.log(eventLocation);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

String - 活动地点

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getMyStatus()

获取有效用户的活动状态(例如“参加”或“受邀”)。如果有效用户是事件的所有者,则始终返回 GuestStatus.OWNER

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the event status of
  // the effective user and logs it.
  const myStatus = event.getMyStatus();
  console.log(myStatus.toString());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

GuestStatus - 状态

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getOriginalCalendarId()

获取此活动最初创建时所用的日历的 ID。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 25th, 2023 that takes
// place between 4:00 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 25,2023 16:00:00'),
    new Date('Feb 25,2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the ID of the calendar
  // where the event was originally created and logs it.
  const calendarId = event.getOriginalCalendarId();
  console.log(calendarId);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

String - 原始日历的 ID

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getPopupReminders()

获取活动的所有弹出式提醒的分钟值。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 4th, 2023 that takes
// place between 5:05 PM and 5:35 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 04, 2023 17:05:00'),
    new Date('Feb 04, 2023 17:35:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, adds two pop-up reminders
  // to the event. The first reminder pops up 5 minutes before the event starts
  // and the second reminder pops up 3 minutes before the event starts.
  event.addPopupReminder(3);
  event.addPopupReminder(5);

  // Gets the minute values for all pop-up reminders for the event and logs it.
  const popUpReminder = event.getPopupReminders();
  console.log(popUpReminder);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Integer[] - 一个数组,其中每个值都对应于提醒触发的事件之前的分钟数

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getSmsReminders()

获取活动的所有短信提醒的分钟值。

返回

Integer[] - 一个数组,其中每个值都对应于提醒触发的事件之前的分钟数

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getStartTime()

获取此日历活动的开始日期和时间。对于非全天活动,这是定义为事件开始的时间瞬间。对于仅存储开始日期(而非日期和时间)的全天活动,此字段表示活动开始当天(在日历的时区)的零点。这样一来,便可对所有类型的事件的开始时间进行有意义的比较;不过,此方法不一定会保留原始的日期。

对于全天活动,几乎应始终调用 getAllDayStartDate(),而不是此方法。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

// Gets the date and time at which this calendar event begins and logs it.
const startTime = event.getStartTime();
console.log(startTime);

返回

Date - 此日历活动的开始时间

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getTag(key)

获取事件的代码值。

参数

名称类型说明
keyString密钥

返回

String - 标记值

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getTitle()

获取活动的标题。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for January 31st, 2023 that takes
// place between 9:05 AM and 9:15 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Jan 31, 2023 09:05:00'),
    new Date('Jan 31, 2023 09:15:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, logs the title of the
  // event.
  console.log(event.getTitle());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

String - 标题

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getTransparency()

获取事件的透明度。您可以使用此方法确定活动是 TRANSPARENT(表示日历在此时间段显示为“空闲”)还是 OPAQUE(表示日历在此时间段显示为“忙碌”)。

// Gets the first event from the default calendar for today.
const today = new Date();
const event = CalendarApp.getDefaultCalendar().getEventsForDay(today)[0];
// Gets the event's transparency and logs it.
const transparency = event.getTransparency();
Logger.log(transparency);

返回

EventTransparency - 透明度值。

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

getVisibility()

获取事件的公开范围。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, gets the visibility of the
  // event and logs it.
  const eventVisibility = event.getVisibility();
  console.log(eventVisibility.toString());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Visibility - 可见度值

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

guestsCanInviteOthers()

确定来宾是否可以邀请其他来宾。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 9:35 AM and 9:40 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 09:35:00'),
    new Date('Feb 01, 2023 09:40:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, determines whether guests
  // can invite other guests and logs it.
  console.log(event.guestsCanInviteOthers());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Boolean - 如果邀请对象可以邀请其他人,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

guestsCanModify()

确定邀请对象是否可以修改活动。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 9:35 AM and 9:40 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 09:35:00'),
    new Date('Feb 01, 2023 09:40:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the event so that
  // guests can't modify it.
  event.setGuestsCanModify(false);

  // Determines whether guests can modify the event and logs it.
  console.log(event.guestsCanModify());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Boolean - 如果邀请对象可以修改活动,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

guestsCanSeeGuests()

确定来宾是否可以看到其他来宾。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 9:35 AM and 9:40 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 09:35:00'),
    new Date('Feb 01, 2023 09:40:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, determines whether guests
  // can see other guests and logs it.
  console.log(event.guestsCanSeeGuests());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Boolean - 如果邀请对象可以看到其他邀请对象,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

isAllDayEvent()

确定这是否为全天活动。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for January 31st, 2023 that takes
// place between 9:05 AM and 9:15 AM.
const event = calendar.getEvents(
    new Date('Jan 31, 2023 09:05:00'),
    new Date('Jan 31, 2023 09:15:00'),
    )[0];

// Determines whether this event is an all-day event and logs it.
console.log(event.isAllDayEvent());

返回

Boolean - 如果活动是全天活动,则为 true;如果不是,则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

isOwnedByMe()

确定您是否为活动的所有者。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for January 31st, 2023 that takes
// place between 9:05 AM and 9:15 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Jan 31, 2023 09:05:00'),
    new Date('Jan 31, 2023 09:15:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, determines whether you're
  // the owner of the event and logs it.
  console.log(event.isOwnedByMe());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Boolean - 如果事件归有效用户所有,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

isRecurringEvent()

确定事件是否属于系列活动。

// Opens the calendar by its ID. You must have view access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for Januart 31st, 2023 that takes
// place between 9:00 AM and 10:00 AM.
const event = calendar.getEvents(
    new Date('Jan 31, 2023 09:00:00'),
    new Date('Jan 31, 2023 10:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, determines whether the
  // event is part of an event series and logs it.
  console.log(event.isRecurringEvent());
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

Boolean - 如果事件是系列事件的一部分,则为 true;否则为 false

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

removeAllReminders()

从活动中移除所有提醒。

// Opens the calendar by its ID. You must have edit access to the calendar
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 1,2023 16:10:00'),
    new Date('Feb 1,2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, removes all reminders from
  // the event.
  event.removeAllReminders();
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

removeGuest(email)

从活动中移除邀请对象。

// Example 1: Remove a guest from one event
function removeGuestFromEvent() {
  // Replace the below values with your own
  const attendeeEmail =
      'user@example.com';  // Email address of the person you need to remove
  const calendarId =
      'calendar_123@group.calendar.google.com';  // ID of calendar containing
  // event
  const eventId = '123abc';  // ID of event instance

  const calendar = CalendarApp.getCalendarById(calendarId);
  if (calendar === null) {
    // Calendar not found
    console.log('Calendar not found', calendarId);
    return;
  }
  const event = calendar.getEventById(eventId);
  if (event === null) {
    // Event not found
    console.log('Event not found', eventId);
    return;
  }
  event.removeGuest(attendeeEmail);
}

// Example 2: Remove a guest from all events on a calendar within a specified
// timeframe
function removeGuestFromAllEvents() {
  // Replace the following values with your own
  const attendeeEmail =
      'user@example.com';  // Email address of the person you need to remove
  const calendarId =
      'calendar_123@group.calendar.google.com';  // ID of calendar with the
  // events
  const startDate = new Date(
      'YYYY-MM-DD');  // The first date to remove the guest from the events
  const endDate = new Date(
      'YYYY-MM-DD');  // The last date to remove the attendee from the events

  const calendar = CalendarApp.getCalendarById(calendarId);
  if (calendar === null) {
    // Calendar not found
    console.log('Calendar not found', calendarId);
    return;
  }
  // Get the events within the specified timeframe
  const calEvents = calendar.getEvents(startDate, endDate);
  console.log(calEvents.length);  // Checks how many events are found
  // Loop through all events and remove the attendee from each of them
  for (let i = 0; i < calEvents.length; i++) {
    const event = calEvents[i];
    event.removeGuest(attendeeEmail);
  }
}

参数

名称类型说明
emailString访客的电子邮件地址

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

resetRemindersToDefault()

使用日历的默认设置重置提醒。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 1, 2023 16:10:00'),
    new Date('Feb 1, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, resets the reminders using
  // the calendar's default settings.
  event.resetRemindersToDefault();
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setAllDayDate(date)

设置活动的日期。应用此方法可将常规活动更改为全天活动。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 17th, 2023 that takes
// place between 4:00 PM and 5:00 PM.
const event = calendar.getEvents(
    new Date('Feb 17, 2023 16:00:00'),
    new Date('Feb 17, 2023 17:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the date of the event
  // and updates it to an all-day event.
  event.setAllDayDate(new Date('Feb 17, 2023'));
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
dateDate活动的日期(系统会忽略时间)

返回

CalendarEvent - 用于串联的此 CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setAllDayDates(startDate, endDate)

设置活动的日期。应用此方法可将普通事件更改为全天事件。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 18th, 2023 that takes
// place between 4:00 PM and 5:00 PM.
const event = calendar.getEvents(
    new Date('Feb 18, 2023 16:00:00'),
    new Date('Feb 18, 2023 17:00:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the event to be an
  // all-day event from Feb 18th, 2023 until Feb 25th, 2023. Applying this
  // method changes a regular event into an all-day event.
  event.setAllDayDates(new Date('Feb 18, 2023'), new Date('Feb 25, 2023'));
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
startDateDate活动的开始日期(系统会忽略时间)
endDateDate活动的结束日期(系统会忽略时间)

返回

CalendarEvent - 用于串联的此 CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setAnyoneCanAddSelf(anyoneCanAddSelf)

设置非邀请对象是否可以将自己添加到活动。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 15th, 2023 that takes
// place between 3:30 PM and 4:30 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 15, 2023 15:30:00'),
    new Date('Feb 15, 2023 16:30:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the event so that
  // non-guests can't add themselves to the event.
  event.setAnyoneCanAddSelf(false);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
anyoneCanAddSelfBoolean是否允许任何人邀请自己

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setColor(color)

设置日历活动的颜色。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the color of the
  // calendar event to green.
  event.setColor(CalendarApp.EventColor.GREEN);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
colorString整数颜色索引(作为字符串),或 CalendarApp.EventColor 中的值。

返回

CalendarEvent - 此日历活动,用于串联。

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setDescription(description)

设置事件的说明。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 4th, 2023 that takes
// place between 5:05 PM and 5:35 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 04, 2023 17:05:00'),
    new Date('Feb 04, 2023 17:35:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the description of the
  // event to 'Meeting.'
  event.setDescription('Meeting');
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
descriptionString新的广告内容描述

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setGuestsCanInviteOthers(guestsCanInviteOthers)

设置邀请对象能否邀请其他邀请对象。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own. You must have edit access to
// the calendar.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 9:35 AM and 9:40 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 09:35:00'),
    new Date('Feb 01, 2023 09:40:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the event so that
  // guests can invite other guests.
  event.setGuestsCanInviteOthers(true);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
guestsCanInviteOthersBoolean来宾是否可邀请他人

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setGuestsCanModify(guestsCanModify)

设置邀请对象是否可以修改活动。

参数

名称类型说明
guestsCanModifyBoolean邀请对象是否可以修改活动

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setGuestsCanSeeGuests(guestsCanSeeGuests)

设置访客能否看到其他访客。

参数

名称类型说明
guestsCanSeeGuestsBoolean来宾是否可以看到其他人

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setLocation(location)

设置活动的地点。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the location of the
  // event to Noida.
  event.setLocation('Noida');
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
locationString新位置

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setMyStatus(status)

设置有效用户的活动状态(例如“参加”或“受邀”)。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for February 1st, 2023 that takes
// place between 4:10 PM and 4:25 PM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Feb 01, 2023 16:10:00'),
    new Date('Feb 01, 2023 16:25:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, sets the event status for
  // the current user to maybe.
  event.setMyStatus(CalendarApp.GuestStatus.MAYBE);
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
statusGuestStatus新状态

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setTag(key, value)

在事件上设置键值对标记,以存储自定义元数据。

参数

名称类型说明
keyString标记键
valueString标记值

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setTime(startTime, endTime)

设置活动的开始日期和时间以及结束日期和时间。应用此方法会将全天事件更改为常规事件。

// Opens the calendar by its ID.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Declares a start time of 11:00 AM on February 20th, 2023 and an end time of
// 12:00 PM on February 20th, 2023.
const startTime = new Date('Feb 20,2023 11:00:00');
const endTime = new Date('Feb 20, 2023  12:00:00');

// Creates an all-day event on February 20th, 2023.
const event = calendar.createAllDayEvent('Meeting', new Date('Feb 20,2023'));

// Updates the all-day event to a regular event by setting a start and end time
// for the event.
event.setTime(startTime, endTime);

参数

名称类型说明
startTimeDate活动的新开始时间
endTimeDate活动的新结束时间

返回

CalendarEvent - 用于串联的此 CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setTitle(title)

设置活动的标题。

// Opens the calendar by its ID. You must have edit access to the calendar.
// TODO(developer): Replace the ID with your own.
const calendar = CalendarApp.getCalendarById(
    'abc123456@group.calendar.google.com',
);

// Gets the first event from the calendar for January 31st, 2023 that takes
// place between 9:05 AM and 9:15 AM. For an event series, use
// calendar.getEventSeriesById('abc123456@google.com'); and replace the series
// ID with your own.
const event = calendar.getEvents(
    new Date('Jan 31, 2023 09:05:00'),
    new Date('Jan 31, 2023 09:15:00'),
    )[0];

if (event) {
  // If an event exists within the given time frame, changes its title to
  // Event1.
  event.setTitle('Event1');
} else {
  // If no event exists within the given time frame, logs that information to
  // the console.
  console.log('No events exist for the specified range');
}

参数

名称类型说明
titleString新标题

返回

CalendarEvent - 用于链式调用的 this CalendarEvent

授权

使用此方法的脚本需要具有以下一项或多项范围相关 REST API 中的适当范围的授权:

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

setTransparency(transparency)

设置事件的透明度。使用此方法设置事件是否为 TRANSPARENT, meaning the calendar shows as Available during that time, or OPAQUE, meaning the calendar shows as Busy during that time.

// Gets an event by its ID. For an event series, use getEventSeriesById(iCalId)
// instead.
// TODO(developer): Replace the string with the event ID that you want to get.
const event = CalendarApp.getEventById('abc123456');
// Sets the event's transparency to TRANSPARENT.
event.setTransparency(CalendarApp.EventTransparency.TRANSPARENT);

Parameters

NameTypeDescription
transparencyEventTransparencyThe transparency value.

Return

CalendarEvent — This CalendarEvent 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

setVisibility(visibility)

Sets the visibility of the event.

Parameters

NameTypeDescription
visibilityVisibility

Return

CalendarEvent — this CalendarEvent 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