Weekly economic calendar in Google Calendar

By General Input

Every Friday afternoon, drop next week's market-moving releases (CPI, jobs, FOMC, GDP) straight onto your Google Calendar with phone notifications baked in.

Integrations

  • FRED (St. Louis Fed)
  • Google Calendar

Type

Deterministic Code

Categories

  • Finance
  • Personal Productivity

Build a code workflow that populates my Google Calendar each week with upcoming high-impact U.S. economic data releases from FRED. Pure deterministic pipeline, no LLM step.

Trigger: cron, every Friday at 4:00pm America/New_York.

Inputs (prompt the user for these as workflow inputs so they can edit later):

1) release_allowlist: an editable list of FRED release IDs the user cares about. Default it to the standard market-movers: Consumer Price Index, Producer Price Index, Employment Situation, FOMC Statement / H.15 Selected Interest Rates, Gross Domestic Product, Personal Income and Outlays (PCE), Advance Monthly Sales for Retail and Food Services, ISM Report on Business (Manufacturing and Services), New Residential Construction (Housing Starts), and Job Openings and Labor Turnover (JOLTS). Resolve names to FRED release IDs by calling FRED's Get All Releases once and matching on title, then store the resolved IDs as the default.

2) calendar_id: which Google Calendar to write to. Default 'primary'.

3) default_publication_times: a small lookup of release_id -> local time in America/New_York. Seed it with BLS releases (CPI, PPI, Employment Situation, JOLTS) at 08:30, BEA releases (GDP, PCE) at 08:30, Census releases (Retail Sales, Housing Starts) at 08:30, ISM at 10:00, and FOMC at 14:00. Anything not in the lookup falls back to 09:00 ET.

Steps:

Step 1. Call FRED 'Get All Releases Dates' with realtime_start = today, realtime_end = today + 7 days, include_release_dates_with_no_data = true, order_by = release_date, sort_order = asc, limit = 1000. This gives the global release calendar for the next 7 days.

Step 2. Filter the returned release dates to only those whose release_id is in release_allowlist. Drop anything in the past.

Step 3. For each remaining release date, look up the publication time from default_publication_times (fallback 09:00 ET). Construct a 30-minute event in America/New_York timezone.

Step 4. Deduplicate. Before creating, call Google Calendar 'List Events' for that calendar with timeMin = start of release_date (ET), timeMax = end of release_date (ET), q = release name, singleEvents = true. If an event with the same summary already exists on that date, skip.

Step 5. Call Google Calendar 'Create Event' on calendar_id with: summary = release name (e.g. 'CPI Release'), start.dateTime and end.dateTime as RFC3339 in America/New_York, description = a short line plus the FRED release page link 'https://fred.stlouisfed.org/release?rid=' + release_id and the release_id itself, source.title = 'FRED', source.url = the release page URL.

Output: a structured summary of which events were created and which were skipped as duplicates. No notifications needed beyond the calendar entries themselves (Google Calendar's own reminders handle phone alerts).

Notes: FRED requires file_type=json and api_key on every request. Dates are case-sensitive YYYY-MM-DD. Missing values come back as the literal string '.', not null. Google Calendar uses RFC3339 datetimes with timezone offset, and 'primary' is a valid calendar id.

Related prompts

Explore more prompts
Front desk appointment confirmation board for the next 3 daysAppointment confirmation board built on WhatsApp repliesPlan a field sales day around drive time and neglected accountsShort-term rental turnover console for Home AssistantRun your HoneyBook booking season from one calendarA keep in touch board built on your Google ContactsSee who actually joined your recurring Google Meet callsSee which of your recurring meetings are one person talkingHiring debrief room where every rating shows its evidenceSee which meetings are wrecking your sleep and recovery