Skip to content

Daily or weekly

Create recurring tasks in Notion

Weekly and monthly tasks are added to Notion on time, and each owner is told in Slack.

Runs
Daily or weekly
Apps
Notion, Slack
AI
Not needed
Access
Notion read+insert; Slack chat:write

Send this to your assistant

Create a ClickRuntime automation: every Monday, create this week's recurring tasks in my Notion tasks database from my Recurring database, and message each owner in Slack.

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

Every team has chores that repeat: monthly invoicing, a Monday metrics review, quarterly access reviews, renewing a domain every year. Notion has no dependable repeating tasks across a database, so people copy last month's page by hand or keep a calendar reminder that is not connected to the work. The task is created late, assigned to the wrong person or simply forgotten, and the missed access review is found during an audit.

ClickRuntime reads a rules database in Notion where each row describes a recurring task, its owner and how often it repeats. Daily or weekly, it creates the due task pages that do not exist yet, using saved state to avoid duplicates, and posts a Slack message to each owner with the new task.

Operations managers and finance teams use it for the routine work that keeps a business compliant.

What you get out of it

  • Routine work appears without anyone remembering

    On the first of the month the invoicing task is already in the database, assigned and dated. The chore no longer relies on a person's calendar or good intentions. The chore stops depending on a personal calendar entry or on someone's good intentions.

  • Owners are told where they will notice

    A Slack message goes to the person responsible when the task is created. They act on it right away, rather than discovering it on the due date. They act when the task is created rather than discovering it on the due date.

  • The schedule is a table anyone can edit

    Rules are plain Notion rows, so adding a quarterly review or changing an owner takes a minute. No one needs to touch the automation when the routine changes. Nobody has to touch the automation itself when the routine changes.

  • Duplicates are prevented

    The record of created tasks means a rule produces one page per period. A run repeated after a hiccup does not fill the database with copies. A run that is repeated after a hiccup does not fill the database with copies.

  • Evidence for audits builds itself

    Each completed instance stays as a dated page. Showing that the access review ran every quarter for two years is a matter of filtering the database. Auditors can be shown the full history without anyone assembling it by hand.

How it works

What happens, step by step

  1. Every Monday, ClickRuntime reads your recurring task rules from a Notion database.

  2. For each rule due this week, it creates a new task in your Notion tasks database, skipping any it has already created this week.

  3. Each task owner gets a Slack direct message with the new task and its due date.

Before it runs live

  • Connect Notion and share the database you want it to use
  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsDaily or weekly
Create recurring tasks in Notiontoday, 9:00Succeeded
Slack · DM🔁 New this week: Send weekly metrics to investors (due Thu 22 Oct)

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
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Google Sheets
  • Combine it with other Notion and Slack 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.
recurring_notion_tasks_from_rules.pyexample
from datetime import date, timedelta
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials, http, state

RULES_DB = "your-recurring-database-id"
TASKS_DB = "your-tasks-database-id"

@on_trigger
def run(event):  # Mondays
    h = {"Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"}
    week = date.today().isocalendar()
    key = f"{week.year}-W{week.week}"
    done = set(state.get(key) or [])
    slack = WebClient(token=credentials.connection("slack", "work"))
    created = 0
    for rule in http.post(f"https://api.notion.com/v1/databases/{RULES_DB}/query", headers=h, json={}).json()["results"]:
        p = rule["properties"]
        if rule["id"] in done:
            continue
        title = "".join(t["plain_text"] for t in p["Name"]["title"])
        due = date.today() + timedelta(days=int(p["Weekday"]["number"] or 0))
        http.post("https://api.notion.com/v1/pages", headers=h, json={"parent": {"database_id": TASKS_DB}, "properties": {
            "Name": {"title": [{"text": {"content": title}}]}, "Due": {"date": {"start": due.isoformat()}},
            "Assignee": {"people": [{"id": u["id"]} for u in p["Owner"]["people"]]}}})
        for u in p["Owner"]["people"]:
            sid = slack.users_lookupByEmail(email=u["person"]["email"])["user"]["id"]
            slack.chat_postMessage(channel=sid, text=f"🔁 New this week: {title} (due {due:%a %d %b})")
        done.add(rule["id"]); created += 1
    state.set(key, sorted(done))
    return {"created": created}

FAQ

Common questions

What can a rule specify?
A title, an owner, a frequency such as weekly on Monday or monthly on the first, a due-date offset and any properties to copy onto the new task. You define these columns in the rules database.
What if the owner changes?
Edit the rule and the next task goes to the new owner. Tasks already created keep their old assignee, so history is preserved, and you can reassign open tasks by hand. Existing tasks can be reassigned by hand whenever needed.
How does it know a task has already been created?
It remembers the rule and period it last created, such as the rule ID and the month. If a task exists for that period it is skipped, even if the automation runs more than once.
What permissions does it need?
Notion read+insert; Slack chat:write. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily or weekly). 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 “Create recurring tasks in Notion” from your assistant

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