The moment it happens
Set reminders by Telegram message and get them on time
You tell your Telegram bot what to remind you about and when, it saves the reminder in Airtable, and sends it to you when it is due.
- Runs
- The moment it happens
- Apps
- Airtable, Telegram
- AI
- Optional
- Access
- bot token; Airtable read+write
Send this to your assistant
Create a ClickRuntime automation: when I message my bot 'remind me…', save the reminder in my Airtable 'Reminders' table with the time. Every 5 minutes, send me any reminders that are due and mark them done.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A freelancer juggles client calls, invoice chases and personal errands. Reminders set in a phone app get lost among notifications, and there is no list to look back at. They already message themselves on Telegram all day.
Typing 'remind me to chase the Contoso invoice Thursday at 10' to a bot, and having it saved in Airtable and sent at the right time, keeps reminders in the chat they already use, with a full list in the base for planning the week. The same set-up can drip a course or lesson plan stored in Airtable, one item at a time.
What you get out of it
Set a reminder in plain words
AI turns 'next Tuesday at 3' or 'in two hours' into an exact time.
A list you can see and edit
Every reminder is a row in Airtable, so you can reschedule, cancel or review the week in one place.
Arrives on time
Due reminders are sent within five minutes of their time.
Sent once
Each reminder is marked done after it is sent, so it never repeats.
How it works
What happens, step by step
You message your bot, for example 'remind me to call Northwind tomorrow at 9'.
AI works out what to remind you about and the exact time.
The reminder is saved in your Airtable Reminders table and the bot confirms the time back to you.
Every 5 minutes, ClickRuntime checks for reminders that are due and sends them to you on Telegram.
Each one is marked done once sent, so it is not sent again.
Before it runs live
- Connect Airtable
- Connect Telegram
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
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
- Act only on the items that match your own rules, and skip the rest
- 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 Airtable and Telegram steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timezone
from clickruntime import on_event, on_trigger, credentials, http, ai, report_fetched
BASE_ID, CHAT_ID, TZ = "appXXXXXXXXXXXXXX", 123456789, "Europe/London"
API = f"https://api.airtable.com/v0/{BASE_ID}/Reminders"
SCHEMA = {"type": "object", "properties": {"what": {"type": "string"}, "due_utc": {"type": "string"}}, "required": ["what", "due_utc"]}
def headers(): return {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
def send(text): http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage", json={"chat_id": CHAT_ID, "text": text})
@on_event
def handle(event):
msg = (event.json or {}).get("message") or {}
if msg.get("chat", {}).get("id") != CHAT_ID or not msg.get("text"):
return {"ignored": True}
r = ai.generate(f"Now (UTC): {datetime.now(timezone.utc).isoformat(timespec='minutes')}. Time zone: {TZ}.\nMessage: {msg['text']}",
system="Extract the reminder text and due time as ISO 8601 UTC. Leave due_utc empty if unclear.",
json_schema=SCHEMA, max_output_tokens=100).json
if not r["due_utc"]:
return send("Sorry, when should I remind you?") or {"saved": False}
http.post(API, headers=headers(), json={"records": [{"fields": {"Reminder": r["what"], "Due": r["due_utc"], "Status": "Pending"}}]}).raise_for_status()
send(f"Saved: {r['what']} at {r['due_utc']} UTC")
return {"saved": True}
@on_trigger
def run(event):
due = http.get(API, headers=headers(), params={"filterByFormula": "AND({Status}='Pending', IS_BEFORE({Due}, NOW()))"}).json()["records"]
report_fetched(len(due))
if not due:
return {"sent": 0}
for rec in due:
send(f"Reminder: {rec['fields'].get('Reminder')}")
http.patch(API, headers=headers(), json={"records": [{"id": rec["id"], "fields": {"Status": "Done"}}]}).raise_for_status()
return {"sent": len(due)}FAQ
Common questions
Which time zone does it use?
How do I cancel a reminder?
What if AI cannot work out the time?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Look up and update Airtable records from a Telegram bot
You message your Telegram bot in plain words and it finds, adds or updates records in Airtable, then replies.
See how it worksLog each sale to Airtable and get a Telegram ping
Every sale from your store is added to Airtable and you get a Telegram message with the product and amount.
See how it worksTurn Telegram meeting notes into minutes in Airtable
You send rough notes to your Telegram bot after a meeting and tidy minutes with decisions and action items are saved in Airtable.
See how it worksKeep exploring
Set up “Set reminders by Telegram message and get them on time” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.