用apps script批量删除google日历中含指定关键词或全天农历节气事件,先预演再执行;手机端可清空本地日程;还可卸载第三方独立日历彻底清除。

Google日历里堆满了误导入的农历节气、测试事件、API同步残留条目,手动删一页翻十页,点到手指发麻——你不是要一个一个点删除,而是得让系统替你扫清整片无效日程。
用 Apps Script 批量删掉指定关键词事件
这方法适合删掉标题含“小寒”“初一”“Catch up”等固定字样的事件,比如批量导入的节气日程或调试用的测试事件。
第一步:打开 Google Apps Script 新建空白项目,粘贴以下代码(注意替换邮箱和时间范围):
function deleteEventsByKeyword() {
var fromDate = new Date(2024, 0, 1); // 起始时间:2024年1月1日
var toDate = new Date(2027, 0, 1); // 结束时间:2027年1月1日
var keywords = ["小寒", "初一", "闰月", "节气"]; // 改成你要匹配的词
var calendar = CalendarApp.getDefaultCalendar();
var events = calendar.getEvents(fromDate, toDate);
var count = 0;
for (var i = 0; i var title = events[i].getTitle();
if (keywords.some(kw => title.includes(kw))) {
Logger.log("预删:" + title);
// events[i].deleteEvent(); // ⚠️先别取消注释!
count++;
}
}
Logger.log("共匹配 " + count + " 条,确认无误后再取消注释运行");
}
第二步:点击右上角 ▶ 运行按钮 → 授权 Google 日历权限(首次运行必弹)→ 等待执行完成。
第三步:点击左侧「执行」→ 查看最近一次执行的日志,确认列出的全是你要删的事件。如果混入了正常日程,立刻停手,回头检查 keywords 数组是否太宽泛。
第四步:回到代码,把 【// events[i].deleteEvent();】 这一行开头的两个斜杠删掉,保存后再次运行——这次才会真正删除。
专删农历/节气类全天事件(更精准)
很多农历事件是“全天事件”,且不带时间,和普通会议混在一起却无法筛选。这个脚本只处理全天事件,避开误伤带时间的正式日程。
打开新脚本文件,粘贴以下代码:
const CAL_ID = 'your_email@gmail.com'; // 【必须改成你自己的谷歌邮箱】
const START = new Date('2024-01-01');
const END = new Date('2027-01-01');
const DRY_RUN = true; // 先设为 true 预演,确认后再改为 false
const KEYWORDS = ['农历', '立春', '廿一', '腊月', '冬至'];
function myFunction() { deleteLunarAllDayEvents(); }
function deleteLunarAllDayEvents() {
const cal = CalendarApp.getCalendarById(CAL_ID);
let hit = 0, del = 0;
const events = cal.getEvents(START, END);
for (let e of events) {
if (!e.isAllDayEvent()) continue;
const title = e.getTitle();
if (KEYWORDS.some(kw => title.includes(kw))) {
hit++;
if (!DRY_RUN) e.deleteEvent();
else Logger.log("预删全天事件:" + title);
}
}
Logger.log(`命中 ${hit} 条全天事件`);
}
使用 scrapling 搜索 Google 并返回结构化结果(标题、链接、摘要)。当用户要求搜索 Google 或在线查找信息时调用。
填好邮箱、设 DRY_RUN = true 后直接运行,日志里只显示全天事件,一眼就能判断有没有误判。
确认无误后,把 DRY_RUN 改成 false,再运行一次——所有匹配的全天农历/节气事件瞬间清空。
安卓/iOS手机端快速清空本地日程
如果你只是想把手机自带日历里“本地创建”的日程全删光(不涉及 Google 账号同步数据),操作极简:
安卓用户:打开日历 App → 点击右上角「•••」→「日程」→ 长按任意一条 → 点「全选」→ 点「删除」→ 确认。
iOS 用户:进入「日历」App → 切换到「日程」列表 → 长按任一日程 → 弹出菜单点「全选」→ 点「删除」→ 确认。
⚠️注意:【此操作仅删除本机存储的日程,不会影响 Google 账号云端同步的日历】。如果日程来自 Gmail 账号,必须用前两种脚本方式删。
彻底关闭某日历账户(连根清除)
某些第三方服务(如天气插件、节日日历)会新建独立日历并持续推送事件,你找不到源头,但能看到它在日历列表里单独存在。
打开 Google 日历网页版 → 左侧「我的日历」区域 → 找到对应日历名称 → 右键 → 「设置和共享」→ 拉到最底 → 「卸载此日历」→ 确认。
这一步会立即移除该日历下所有事件,且不可恢复。如果该日历是别人共享给你的,卸载后对方日历不受影响。
若该日历是你自己创建的,卸载前请确认里面没有需要保留的重要事件——【卸载操作不可逆】。










