對於 2026 年 11 月 10 日(週二)13:30 UTC 公布的美國消費者物價資料,提前 1 小時的提醒時間是 12:30 UTC。你可以讓行事曆應用程式訂閱 Narwhal 行事曆訂閱源並設定提醒,也可以每天執行一次簡短的腳本,列出未來 24 小時內將要公布的資料。提醒由行事曆應用程式負責;你也可以用自己的程式碼把腳本的輸出傳送到電子郵件或聊天工具。
使用 API
- 取得你的 API 金鑰 取得免費 API 金鑰,並存放在環境變數
NARWHAL_API_KEY中。請求發送至https://api.narwhalapi.com,並帶上Authorization: Bearer YOUR_KEY;範例會從該變數讀取金鑰。 - 建立行事曆訂閱源 帶上國家與日期範圍,發送
POST /v1/calendars/subscriptions。範例請求的是USA、prices與policy_rate系列、不含假日,時間範圍為 2026 年 10 月 24 日至 2027 年 10 月 23 日。curl -s -X POST https://api.narwhalapi.com/v1/calendars/subscriptions \ -H "Authorization: Bearer $NARWHAL_API_KEY" -H "Content-Type: application/json" \ -d '{"countries":["USA"],"start_date":"2026-10-24","end_date":"2027-10-23", "include_holidays":false,"families":["prices","policy_rate"]}' - 儲存訂閱資訊 請保存回應中的
subscription_id、url與expires_at。.ics網址只會回傳一次,請務必保存好,並把它當作機密。 - 用每日腳本傳送電子郵件或聊天訊息 要向團隊頻道發送提醒,請每天執行一次這支腳本,並透過聊天工具的傳入 Webhook 傳送它的輸出。你也可以用自己的程式碼把輸出傳送到電子郵件。
import os, sys from datetime import datetime, timedelta, timezone import requests HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} COUNTRIES = ["USA", "GBR", "JPN"] AHEAD = timedelta(hours=24) def upcoming(): now = datetime.now(timezone.utc) r = requests.get( "https://api.narwhalapi.com/v1/economics/calendar", headers=HEADERS, timeout=10, params={ "countries": COUNTRIES, "start_date": now.date().isoformat(), "end_date": (now + AHEAD).date().isoformat(), "limit": 100, }, ) r.raise_for_status() for x in r.json()["releases"]: if x["status"] == "scheduled" and "at" in x: at = datetime.fromisoformat(x["at"].replace("Z", "+00:00")) if now <= at <= now + AHEAD: yield x, at for release, at in upcoming(): print( f"{release['country']} {release['name']} ({release.get('period')}) " f"at {at:%Y-%m-%d %H:%M} UTC" )
請提供 1 至 50 個 alpha-3 國家代碼,以及相隔不超過 366 天的起訖日期(含首尾)。選用的 families 篩選器最多接受 5 個系列。
有效期為建立後 365 天;2026 年 10 月 24 日建立的訂閱源會在 2027 年 10 月 24 日到期。include_releases 與 include_holidays 預設都為 true,且至少有一個必須為 true。範例關閉了假日,保留公布資料。
腳本讀取 USA、GBR 與 JPN 的行事曆,然後輸出 at 時間在未來 24 小時內的已排定公布。每行輸出包含國家、公布名稱、統計期與 UTC 時間。如果沒有即將公布的資料,則不輸出任何內容。
腳本的時鐘與公布時間戳記都使用 UTC。它的請求涵蓋從執行時刻起到未來 24 小時結束的行事曆日期,上限為 100 筆。
時間戳記比較包含兩端邊界。沒有 at 欄位的公布,以及狀態不是 scheduled 的公布,都會被排除。請求在讀取回應之前會呼叫 raise_for_status(),因此出現 HTTP 錯誤時,腳本會在輸出公布資料之前停止。
無需程式碼設定提醒
把訂閱源網址作為訂閱行事曆加入你的行事曆應用程式。在 Google 日曆中,進入「其他日曆」>「透過網址新增」,然後貼上 .ics 網址。Outlook 與 Apple 行事曆也提供訂閱網路行事曆的選項。請使用訂閱請求回傳的網址。
範例訂閱源包含 prices 與 policy_rate 系列的 USA 公布資料。若要同時包含假日,請在建立請求中把 include_holidays 設為 true。若只想要假日,請把 include_releases 設為 false,並讓 include_holidays 維持為 true。
為該行事曆設定預設通知,例如在公布前 1 小時提醒。提醒設定屬於行事曆應用程式。建立訂閱源會得到訂閱網址;把它加入應用程式並設定通知,才能讓它成為你個人的提醒。
關於訂閱源請求,請參閱行事曆訂閱文件。如果想依自己所在的時區查看公布時間,請參閱將公布時間轉換為你的時區。
各種情況適合的方式
| 情況 | 最適合的方式 | 原因 |
|---|---|---|
| 個人提醒 | 日曆訂閱源 | 在行事曆應用程式中設定所訂閱行事曆的預設通知 |
| 團隊頻道提醒 | 每日腳本加上聊天工具的傳入 Webhook | 用自己的程式碼把腳本的公布清單傳送到頻道 |
| 需要知道日期何時變動 | Webhook | 在公布日期調整時接收事件 |
Webhook 會透過 release.scheduled、release.rescheduled 與 release.cancelled 回報公布被新增、改期或取消,並透過 dataset.published 回報資料已發布。它們不會在公布前依計時觸發。要提前提醒,請使用行事曆提醒或腳本;需要這些變更或發布事件時,請使用 Webhook。
公布改期後,訂閱源會更新嗎?
會。行事曆應用程式會依自己的排程重新取得訂閱源,且該訂閱源支援 ETag 重新整理。延遲來自行事曆用戶端。日期變更會在應用程式重新整理訂閱源時同步到所訂閱的行事曆,更新頻率由應用程式決定。
如何停止行事曆訂閱源?
呼叫 DELETE /v1/calendars/subscriptions/{subscription_id} 即可撤銷。回應為 204,訂閱源隨即停止。該請求使用建立回應中保存的 subscription_id;訂閱源網址則是你提供給行事曆應用程式的那個值。
行事曆訂閱源會用掉多少次請求?
建立訂閱源用 1 次請求,撤銷也用 1 次請求。行事曆應用程式之後的取得不會使用你的 Bearer 金鑰。雖然行事曆應用程式用這個網址取得行事曆,但仍請對訂閱源網址保密。
實例:美國 CPI 提前 1 小時的提醒
從 2026-11-10T13:30:00Z 公布的美國 CPI 開始。13:30 UTC 減去 1 小時,得到提醒時間:2026 年 11 月 10 日 12:30 UTC。把所訂閱行事曆的預設通知設定為事件前 1 小時。
在紐約,同一提醒落在 2026 年 11 月 10 日 07:30 EST;在雅加達則是 2026 年 11 月 10 日 19:30。這些是提醒的當地時間,公布本身在當天的 13:30 UTC。
| 項目 | 2026 年 11 月 10 日的時間 |
|---|---|
| 美國 CPI 公布 | 13:30 UTC |
| 提醒(提前 1 小時) | 12:30 UTC |
| 紐約的同一提醒(EST) | 07:30 |
| 雅加達的同一提醒 | 19:30 |
發布於 。