Skip to main content
Skills can declare an optional schedule so an installed skill runs itself on that schedule and delivers the result where you want it. A skill carrying an automation block loads like any other skill, then offers to schedule itself the moment you install it.
The morning-brief skill declares a schedule, so on install you are asked whether to run it every weekday and where to deliver the result.
This is a parse-only frontmatter contract. Declaring an automation block does not create a schedule or run anything by itself β€” a skill is never auto-scheduled. Materialisation happens consent-first through the wrapper’s existing SuggestionEngine and DeliveryRouter.

Quick Start

1

Minimal β€” schedule only

The only required field is schedule. Add it under the namespaced metadata.praisonai.automation block:
2

Full β€” schedule, deliver, and prompt

Add a delivery target and a prompt to describe what each scheduled run should do:
3

Install and consent

Installing a skill with an automation block proposes a schedule you accept or decline:

How It Works

Installing a skill proposes the automation; you consent, and only then is a job created and delivered.

The Automation Block

Three fields live under metadata.praisonai.automation β€” one required, two optional.
metadata.praisonai.automation is the only parsed location. The praisonai namespace means older parsers ignore the block β€” a skill without it parses to automation=None, fully backward compatible.

Choosing a Delivery Target

Pick a deliver value based on where the result should land.

Schedule Expressions

The schedule string accepts four forms.

Reading the Parsed Value

Read SkillProperties.automation after parsing a skill to introspect its schedule.
automation is None when the skill declares no block, so guard access with a truthiness check.

Installing a Skill With Automation

A skill with an automation block is never scheduled silently. On install, SuggestionEngine proposes the schedule and delivery target. You accept or decline; only on acceptance is a job created and later delivered by DeliveryRouter. Decline, and the skill still works β€” it simply carries an unused schedule.

Backward Compatibility

Skills without an automation block work exactly as before β€” automation parses to None and older PraisonAI installs silently ignore the field.

Best Practices

Use deliver: "origin" so results return to the chat where you installed the skill. It needs no chat IDs and travels with the skill unchanged.
The schedule is the trigger, not the whole task. Put durable instructions in the SKILL.md body and keep prompt to a one-line nudge like "Give me today's brief.".
Reach for cron: when you need weekday-only runs or a specific hour, e.g. cron:0 8 * * mon-fri. Use daily or */30m for simpler cadences.
Include the block in the shared SKILL.md so recipients install-and-go β€” they accept the suggestion once instead of hand-authoring a schedule.

Agent Skills

Give agents modular capabilities through SKILL.md files.

Bot Commands

Accept automation suggestions and manage schedules from chat with /automations.