You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google日历导出的JavaScript代码中获取参会者邮箱并解决TypeError

获取日历参会者邮箱并替换代码中的getLocation

嘿,我来帮你解决这个问题!你遇到的TypeError是因为CalendarEvent对象根本没有你试的那些getEmail()、getAttendee()方法——正确的姿势是先获取参会者列表,再从每个参会者对象里拿邮箱。

具体解决方案:

首先,我们可以写一个小函数来获取第一个有效客户的邮箱(满足你“最多一位,多位忽略其他”的需求):

function getFirstGuestEmail(event) {
  const guests = event.getGuestList();
  // 过滤掉会议创建者,确保拿到的是客户邮箱
  const customerGuests = guests.filter(guest => !guest.isCreator());
  // 如果有客户参会就返回第一个的邮箱,没有就返回空字符串
  return customerGuests.length > 0 ? customerGuests[0].getEmail() : '';
}

然后把你原来代码里的events[i].getLocation()替换成这个函数的调用结果就行:

var details=[[
  mycal,
  events[i].getTitle(), 
  events[i].getDescription(), 
  getFirstGuestEmail(events[i]), // 这里替换掉原来的getLocation()
  events[i].getStartTime(), 
  events[i].getEndTime(), 
  myformula_placeholder, 
  ('' + events[i].getVisibility()), 
  events[i].getDateCreated(), 
  events[i].getLastUpdated(), 
  events[i].getMyStatus(), 
  events[i].getCreators(), 
  events[i].isAllDayEvent(), 
  events[i].isRecurringEvent()
]];

为啥之前的写法不对?

CalendarEvent对象本身没有直接获取单个参会者邮箱的方法,必须通过getGuestList()拿到所有参会者的Guest对象数组,再对每个Guest对象调用getEmail()才能拿到邮箱地址。你之前试的那些方法要么不存在,要么调用方式错误。

可选调整:

如果不需要过滤创建者(比如创建者也是客户的情况),可以简化函数:

function getFirstGuestEmail(event) {
  const guests = event.getGuestList();
  return guests.length > 0 ? guests[0].getEmail() : '';
}

这样修改后,你的脚本就能正确把参会者邮箱导出到Google表格里啦!

内容的提问来源于stack exchange,提问作者985ranch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:35:21