提取阶跃AI输出中的时间与事件信息
先从阶跃AI返回的文本里下手。打开结果,用Ctrl+F搜一搜“明天”“后天”“本周五”“下午3点”“会议”“截止”这些关键词,把包含时间和动作的句子都圈出来。需要注意的是,阶跃AI有时候会冒出“明早八点前交稿”这种口语化说法,不能直接当成ISO时间用。
接着逐句核对时间表述是否具体。要是出现“尽快”“稍后”“下周初”这类模糊词,就必须手动补成确切的日期和时间,否则后续根本没法生成有效的日历事件。
把每一条完整的事件单独写成一行,格式统一为:【日期】 【时间】 【事件标题】。比如:“2024-06-18 14:00 产品评审会”“2024-06-20 09:30 客户合同签字”。日期必须用YYYY-MM-DD,时间必须用HH:MM,中间用空格隔开,缺一不可。
用Python脚本批量转成.ics文件
这里推荐方法一:用icalendar库来生成,简单又靠谱。
先安装依赖:pip install icalendar
然后新建一个文本文件,命名为text_to_ics.py,把下面的代码贴进去(记得把events列表里的例子换成你整理好的事件行)。
from icalendar import Calendar, Event
from datetime import datetime
cal = Calendar()
events = [
"2024-06-18 14:00 产品评审会",
"2024-06-20 09:30 客户合同签字"
]
for line in events:
dt_str, summary = line.split(" ", 1)
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M")
e = Event()
e.add('summary', summary.strip())
e.add('dtstart', dt)
e.add('dtend', dt.replace(minute=dt.minute + 30))
e.add('dtstamp', datetime.now())
cal.add_component(e)
with open('schedule.ics', 'wb') as f:
f.write(cal.to_ical())
运行这个脚本,当前目录下就会生成一个schedule.ics文件。脚本自动给每个事件添加了UID和DTSTAMP,这样导入日历的时候就不会被当作重复事件处理了。
导入日历应用
iOS设备:打开“日历”App → 点击左上角“+” → 选“从文件添加日历” → 找到schedule.ics → 确认导入。
macOS系统:直接双击schedule.ics文件 → 会自动弹出“日历”App → 点“导入”按钮 → 然后选择目标日历账户(比如iCloud或Outlook)就行了。
Windows或Android:用浏览器打开Google Calendar → 左侧菜单点击“其他日历” → 展开后选择“导入” → 上传schedule.ics → 选择对应的日历 → 最后点击“导入”。导入之后一定要检查一下事件时间是否跟本地时区一致。如果阶跃AI输出的文本没有声明时区,脚本默认按系统本地时区解析,这点得留个心眼。
