目次
はじめに
コーヒー好きの皆さん、こんにちは!
最近、カルディのコーヒー豆は値上がり傾向…。「買った直後にセール開始」の悲しみを経験された方も多いのではないでしょうか?
そこで、Google Apps ScriptとDiscord通知を組み合わせた「カルディセールカレンダー通知機能」を作成しました。週末のドリップコーヒータイムをもっと計画的に、もっとお得に楽しみましょう!
なぜ作ったのか
- 値上がりするコーヒー豆
200gで896円3年前くらいに比べると1.5倍くらいの価格帯に。
- セール後の後悔
欲しい豆を買ったあとにセールが始まり、「やられた…」とガッカリ。
- 週末のドリップ習慣
結婚祝いでいただいたバルミューダのケトルを使い、土日はドリップコーヒーを淹れるのが日課に。
- いちいち見に行くのは大変
セール情報の通知機能が欲しい。
機能概要
- Google Apps Script でカルディ公式サイトからセール情報を自動取得
- スクリプトプロパティで店舗名設定&お気に入り店舗を管理
- Google カレンダー(primary)に全日イベントを重複なく登録
- お気に入り店舗のセール開始を Discord(Webhook)へ通知
- 時間主導トリガーで毎日自動実行
リポジトリ: https://github.com/kuma6082/kaldi-sale-calendar-bot
実行結果
Googleカレンダー イベント登録

Discord通知

実装ポイント
- 設定取得 (
getConfig
)-
FAVORITE_STORE
とSTORE_NAMES_TO_CHECK
を ScriptProperties から読み込み - JSON パース・重複排除して店舗リストを生成
-
- セール情報取得 (
getKaldiSaleData
)-
UrlFetchApp.fetch
で公式ページを取得 - 正規表現で店舗名と開始・終了日を抽出し、配列で返却
-
- カレンダー登録 (
createKaldiSaleEvents
)-
CalendarApp.getDefaultCalendar()
→ 既存イベントをgetEvents
で検索 - 未登録なら
createAllDayEvent
、お気に入り店舗は Discord 通知
-
- Discord通知 (
notifyToDiscord
)- Webhook URL に対して POST リクエストでメッセージ送信
- 自動実行トリガー
- Apps Script の時間主導型トリガーで毎日
createKaldiSaleEvents
を実行
- Apps Script の時間主導型トリガーで毎日
セットアップ手順
- スクリプトプロジェクト作成
Google スプレッドシートまたはカレンダーから「拡張機能」→「Apps Script」を開く。
- コード登録
提供の
.gs
ファイルをコピーして貼り付け。 - スクリプトプロパティ設定
プロジェクト設定の「スクリプトのプロパティ」に以下を登録してください:
キー 値(例) FAVORITE_STORE
ららテラス川口店
STORE_NAMES_TO_CHECK
["エミオ狭山市店","武蔵小山店"]
DISCORD_WEBHOOK_URL
https://discord.com/api/webhooks/...
- 実行権限の承認
初回実行時に表示されるダイアログでスクリプトの権限を承認。
- トリガー設定
自動実行したい場合、Apps Script エディタの「トリガー」から以下を追加:
- 関数:
createKaldiSaleEvents
- イベント:時間主導型 → 毎日 (例: 09:00)
- 関数:
メリット・デメリット
メリット
- セール情報を自動取得&通知
- 計画的なまとめ買いが可能
- 一度設定すればほぼメンテ不要
デメリット
- API変更による動作停止リスク
- Google アカウント&Discord 必須
- カレンダーとWebhookの権限設定が必要
おわり
お気に入りのコーヒー豆を賢くお得にゲットして、週末のドリップタイムを存分に楽しみましょう!
GASとDiscordを組み合わせた通知は、一度設定すれば以降は気にせず“ほったらかし”でOKなのが最大の魅力です。これまでに通知関連ツールを3つ開発してきましたが、今回のカルディセール通知も手軽かつ便利!
バグ報告や機能要望はお気軽に GitHub までどうぞ☕️