Google日历里堆满了误导入的农历节气、测试事件、API同步残留条目,手动删除时翻一页要划十页,点到手指发麻——这时候需要的不是一个个点删除,而是让系统替你扫清整片无效日程。

用 Apps Script 批量删除指定关键词日程事件
这个方法最适合清除标题里含有“小寒”“初一”“Catch up”这类固定字样的日历条目,比如批量导入的节气安排,或者调试阶段留下的测试日程。通过 Google Apps Script 脚本,可以快速匹配并批量移除,避免手动逐条操作。
具体操作并不复杂:打开 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 < events.length; 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} 条全天事件`);
}
填好你的邮箱,先把 DRY_RUN 设为 true 直接运行。日志里只会显示全天事件,一眼就能判断是否有误判。确认无误后,把 DRY_RUN 改成 false,再运行一次,所有匹配的全天农历、节气事件瞬间清理干净,不留残余。
安卓/iOS手机端快速清空本地日程
如果你只想删除手机自带日历里“本地创建”的日程(不涉及 Google 账号的同步数据),操作其实非常简单直接:
安卓用户:打开日历 App,点击右上角「•••」→「日程」→ 长按任意一条日程 → 选择「全选」→ 点击「删除」→ 确认。
iOS 用户:进入「日历」App,切换到「日程」列表,长按任一日程,弹出菜单里选择「全选」→ 点击「删除」→ 确认。
需要特别注意的是:【此操作仅删除本机存储的日程,不会影响 Google 账号云端同步的日历】。如果日程来自 Gmail 账号,则必须使用前两种脚本方式进行批量清除。
彻底关闭某日历账户(连根清除所有事件)
有些第三方服务(比如天气插件、节日日历)会新建一个独立的日历,然后持续向其中推送事件。你可能找不到推送源头,但能在日历列表里看到它单独存在。通过卸载该日历,可以一次性清除所有关联的无用日程。
打开 Google 日历网页版,在左侧「我的日历」区域找到该日历名称,右键 →「设置和共享」→ 拉到最底部 →「卸载此日历」→ 确认。
这一步会立刻移除该日历下的所有事件,且操作不可恢复。如果这个日历是别人共享给你的,卸载后对方的日历不受影响。但如果是你自己创建的,卸载前千万确认里面没有需要保留的重要安排——【这个操作是不可逆的】。
