Skip to content

Daily

Post a daily themed update on X

Each day a post about today's occasion, local weather or top news goes out on X, with a history kept in your sheet.

Runs
Daily
Apps
Google Sheets, X
AI
Yes, uses the built-in AI allowance
Access
Sheets edit; X tweet.write

Send this to your assistant

Create a ClickRuntime automation: every morning at 8am, check my Calendar sheet for today's occasion and the local weather, write a friendly X post for our café, publish it and log it in the sheet.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Local businesses like cafés, gyms and shops do well on social media when they post about what is happening today: a holiday, a heatwave, a local event. It shows they are open and paying attention. But thinking of something to post every morning, before opening, rarely happens.

A sheet of occasions plus today's weather is enough for a timely post each day. The owner fills in the calendar once a month, and the daily post takes care of itself.

What you get out of it

  • Timely posts without the morning effort

    A post that mentions today's weather or occasion goes out before you open, so customers see you are active.

  • Your calendar, your themes

    You choose the occasions that matter to your business in the sheet, from national holidays to your own anniversary.

  • A history to learn from

    Each post is logged with the date, so you can look back at what you posted for each occasion last year.

  • No repeats

    Recent posts are remembered and the AI avoids reusing the same lines, so the feed stays fresh.

How it works

What happens, step by step

  1. Every morning ClickRuntime reads today's row from your calendar sheet and checks the local weather.

  2. AI writes a friendly post that mentions the occasion or the weather, avoiding lines it used recently.

  3. The post is published on your X account.

  4. A row is added to your log tab with the date and the post text.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheets it may use
  • Connect X

What you get

RunsDaily
Post a daily themed update on Xtoday, 9:00Succeeded
X · @northwindcafeRainy Saturday and it's National Hot Chocolate Day ☔ Come dry off by the window, first marshmallow's on us.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other Google Sheets and X steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
daily_themed_auto_post_news_festivals_weather.pyexample
from datetime import date
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state, ai

SHEET_ID = "your-spreadsheet-id"
LAT, LON = 51.45, -2.59  # your city

@on_trigger
def run(event):
    sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
    today = date.today().isoformat()
    cal = {r[0]: r[1] for r in sheets.values().get(spreadsheetId=SHEET_ID, range="Calendar!A2:B").execute().get("values", []) if len(r) > 1}
    if cal.get(today, "").lower() == "skip":
        return {"posted": False}
    w = http.get("https://api.open-meteo.com/v1/forecast", params={"latitude": LAT, "longitude": LON, "daily": "temperature_2m_max,precipitation_sum", "timezone": "auto", "forecast_days": 1}).json()["daily"]
    recent = state.get("recent") or []
    text = ai.generate(f"Occasion: {cal.get(today, 'none')}. High {w['temperature_2m_max'][0]}C, rain {w['precipitation_sum'][0]}mm. "
                       f"Avoid repeating: {recent}", system="Write a warm X post for a neighbourhood café, under 240 characters.",
                       max_output_tokens=100).text.strip()[:280]
    http.post("https://api.x.com/2/tweets", headers={"Authorization": "Bearer " + credentials.connection("x", "main")},
              json={"text": text}).raise_for_status()
    sheets.values().append(spreadsheetId=SHEET_ID, range="Log!A:B", valueInputOption="RAW", body={"values": [[today, text]]}).execute()
    state.set("recent", (recent + [text])[-7:])
    return {"posted": True}

FAQ

Common questions

Where does the weather come from?
From a free public weather service for the city you set. No account or key is needed.
What if there is no occasion today?
The post is based on the weather and your usual offer, so there is still something to say.
Can I skip a day?
Yes. Write skip in that day's row and nothing is posted.
What permissions does it need?
Sheets edit; X tweet.write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Post a daily themed update on X” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.