경제지표 발표 알림을 발표 전에 받는 방법

2026년 11월 10일 화요일 13:30 UTC의 미국 소비자물가 발표라면, 1시간 전 알림은 12:30 UTC입니다. 캘린더 앱에서 Narwhal 캘린더 피드를 구독하고 알림을 설정하거나, 앞으로 24시간 안에 예정된 발표를 나열하는 짧은 스크립트를 하루 한 번 실행하세요. 알림은 캘린더 앱이 처리하며, 스크립트의 출력은 직접 작성한 코드로 이메일이나 채팅에 보낼 수 있습니다.

API 사용 방법

  1. API 키 받기 무료 API 키를 받아 환경 변수 NARWHAL_API_KEY에 보관하세요. 요청은 Authorization: Bearer YOUR_KEY와 함께 https://api.narwhalapi.com으로 보내며, 예시는 이 변수에서 키를 읽습니다.
  2. 캘린더 피드 만들기 국가와 날짜 범위를 담아 POST /v1/calendars/subscriptions를 보냅니다. 이 예시는 USA, prices와 policy_rate 패밀리, 공휴일 제외로 2026년 10월 24일부터 2027년 10월 23일까지를 요청합니다.
    curl, 캘린더 피드 만들기
    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"]}'
  3. 구독 정보 저장하기 응답에서 subscription_id, url, expires_at을 저장하세요. .ics URL은 한 번만 반환되므로 보관해 두고 비밀로 취급하세요.
  4. 이메일이나 채팅용으로 매일 스크립트 쓰기 팀 채널 알림이 필요하면 이 스크립트를 하루 한 번 실행하고, 출력을 채팅 도구의 수신 웹훅으로 보내세요. 직접 작성한 코드로 이메일에 보낼 수도 있습니다.
    Python, 앞으로 24시간 안에 예정된 발표
    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 오류가 나면 발표를 출력하기 전에 중단됩니다.

코드 없이 알림 설정하기

피드 URL을 구독 캘린더로 캘린더 앱에 추가하세요. Google 캘린더에서는 다른 캘린더 > URL로 추가로 이동해 .ics URL을 붙여넣습니다. Outlook과 Apple 캘린더에도 웹에서 캘린더를 구독하는 옵션이 있습니다. 구독 요청에서 반환된 URL을 사용하세요.

이 예시 피드에는 prices와 policy_rate 패밀리의 USA 발표가 들어 있습니다. 공휴일도 포함하려면 생성 요청에서 include_holidays를 true로 설정하세요. 공휴일만 요청하려면 include_releases를 false로 하고 include_holidays는 true로 두세요.

그 캘린더의 기본 알림을 설정하세요(예: 발표 1시간 전). 알림 설정은 캘린더 앱에 속합니다. 피드를 만들면 구독 URL이 생기고, 그것을 앱에 추가하고 알림을 설정하는 단계가 개인용 알림을 완성합니다.

피드 요청에 대해서는 캘린더 구독 문서를 참고하세요. 발표 시각을 내 시간대로 보고 싶다면 발표 시각을 내 시간대로 변환하기를 참고하세요.

상황별 계산 방법

상황적합한 방법이유
개인용 알림캘린더 피드캘린더 앱에서 구독한 캘린더의 기본 알림 설정하기
팀 채널 알림매일 실행하는 스크립트와 채팅 도구의 수신 웹훅스크립트의 발표 목록을 직접 작성한 코드로 채널에 보내기
일정이 바뀌는 것을 알아야 합니다웹훅발표 일정이 바뀔 때 이벤트 받기

웹훅은 발표가 추가, 변경, 취소되는 것을 release.scheduled, release.rescheduled, release.cancelled로 알려 줍니다. 공개된 데이터는 dataset.published로 알립니다. 발표 전에 타이머로 발생하지는 않습니다. 사전 알림에는 캘린더 알림이나 스크립트를 쓰고, 이러한 변경이나 공개 이벤트가 필요할 때는 웹훅을 쓰세요.

발표 일정이 바뀌면 피드도 갱신되나요?

네. 캘린더 앱이 자체 일정에 따라 피드를 다시 가져오며, 피드는 ETag 갱신을 지원합니다. 지연은 캘린더 클라이언트에서 생깁니다. 날짜 변경은 앱이 피드를 새로 고칠 때 구독 중인 캘린더에 반영되며, 그 빈도는 앱이 정합니다.

캘린더 피드를 중지하려면 어떻게 하나요?

DELETE /v1/calendars/subscriptions/{subscription_id}를 호출해 취소하세요. 응답은 204이며 피드가 중지됩니다. 이 요청에는 생성 응답에서 저장한 subscription_id를 쓰세요. 피드 URL은 캘린더 앱에 입력한 값입니다.

캘린더 피드는 요청을 몇 번 사용하나요?

피드를 만들 때 요청 1회, 취소할 때 요청 1회를 사용합니다. 이후 캘린더 앱이 가져오는 작업에는 Bearer 키가 쓰이지 않습니다. 캘린더 앱이 이 URL로 캘린더를 가져오더라도, 피드 URL은 비밀로 유지하세요.

실제 예시: 미국 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

에 게시되었습니다.

다음 단계