今天想到提醒功能,所以我決定讓他提醒我下一堂課要幾點去上
首先直接把學校的課表丟到notion中,因為這樣最省事,如果真的不會做這些,你可以點擊右下方的小人頭,然後跟他說你的要求,他就會自動幫你建立了
![]
建立好後就是n8n的回合了,一樣先開一個Schedule Trigger,讓他的觸發時間是每小時一次
接著去notion,到上次的開發或管理整合,點擊你的內部整合,在存取權限中新增你剛剛的資料庫
回到n8n,剛剛的schedule trigger後面+號查詢NOTION,選擇Get many database pages,就可以直接在from list那邊看到你剛剛的資料庫名稱了,把Simplify的部分取消勾選
好了之後在後面+號加個code node,輸入
const today = ["週日","週一","週二","週三","週四","週五","週六"][new Date().getDay()];
const now = new Date(); // 確保是 Date
return items
.filter(item => {
const dayProp = item.json.properties['星期'].select;
const startProp = item.json.properties['開始時間'].rich_text[0];
if (!dayProp || !startProp) return false;
const [hour, minute] = startProp.plain_text.split(':').map(Number);
const startTime = new Date();
startTime.setHours(hour, minute, 0, 0);
// 兩邊都轉成 timestamp (number)
const diffMinutes = (startTime.getTime() - now.getTime()) / (1000 * 60);
return dayProp.name === today && diffMinutes > 0 && diffMinutes <= 60;
})
.map(item => {
const startProp = item.json.properties['開始時間'].rich_text[0];
const endProp = item.json.properties['結束時間'].rich_text[0];
return {
json: {
title: item.json.properties['課程名稱'].title[0].text.content,
url: item.json.url,
start_time: startProp ? startProp.plain_text : null,
end_time: endProp ? endProp.plain_text : null,
day_of_week: item.json.properties['星期'].select.name
}
};
});
這邊是讓他讀取今天日期及現在時間,只有在開始時間是在一個小時內的課才會接收到資料
最後send discode就完成了