Skip to main content
Schedules generate content at a fixed cadence from activity over a lookback window. They suit consistent output: weekly progress posts, monthly changelog roundups, a daily social image during a launch. You manage them under Automation > Schedules in the dashboard, through the /v1/schedules API, or with notra schedules in the CLI.

How schedules work

1

Schedule configuration

Choose daily, weekly, or monthly, plus the time of day in UTC.
2

Automatic trigger

At the scheduled time Notra starts a run for the schedule.
3

Activity analysis

The run collects pull requests, commits, and releases from the selected repositories, plus completed Linear work when Linear is connected, inside the lookback window.
4

Content generation

The content is written in the selected brand identity. If there is nothing worth writing about, the run is skipped.
5

Review

The result appears under Content as a draft, or as a published post when auto-publish is on.

Schedule frequencies

Runs every day at a set time.Configuration:
  • Hour (0-23, UTC)
  • Minute (0-59)
Good for: high-velocity teams, daily social posts during a launch, end-of-day changelog entries.

Lookback windows

Each schedule analyzes activity over one of five windows:
string
From midnight UTC today until the run
string
The previous calendar day (midnight to midnight UTC)
string
default:true
The past 7 days (default)
string
The past 14 days
string
The past 30 days
Match the window to the cadence: yesterday or current_day for daily schedules, last_7_days for weekly, last_30_days for monthly.

Supported output types

Changelog entry

A concise summary of what shipped and why it matters. Supports auto-publish.

Blog post

A longer-form article explaining the feature in depth. Supports auto-publish.

LinkedIn post

A professional update to share with your network. Saved as a draft.

Tweet

A short announcement for X. Saved as a draft.

Image

A brand-matched social image generated from repository activity. Saved as a draft.

Sources

A schedule needs at least one GitHub repository. Pick them in the Sources step of the dialog. When a Linear integration is connected and enabled, its completed work is included in every schedule run automatically, alongside the selected repositories, and shows up in the sources column of the schedule list.

Create a schedule

1

Open Automation > Schedules

Click New schedule.
2

Name your schedule

Use a descriptive name such as “Weekly LinkedIn update”. Names are limited to 120 characters.
3

Select sources

Choose one or more connected GitHub repositories.
4

Set the cadence

Daily, weekly (pick a day), or monthly (pick a day of month), plus the time. Times use UTC; the summary card also shows the next run in your local timezone.
5

Choose the lookback window

How far back to analyze activity.
6

Choose the content format

Changelog entry, blog post, LinkedIn post, tweet, or image.
7

Pick a brand identity and auto-publish

Use the default brand identity or pin one. Auto-publish is available for changelogs and blog posts.
8

Save

New schedules start enabled. Notra rejects a schedule that duplicates an existing one (“Schedule already exists”).

Through the API

The same schedule through the public API (scope schedules.write):
repositoryIds are GitHub integration IDs from GET /v1/integrations. dayOfWeek is required for weekly schedules and dayOfMonth for monthly ones. outputType is one of changelog, blog_post, linkedin_post, twitter_post, or image. lookbackWindow defaults to last_7_days and autoPublish to false. List, update, and delete with GET /v1/schedules?repositoryIds=repo_123, PATCH /v1/schedules/{scheduleId} (full body), and DELETE /v1/schedules/{scheduleId}. A duplicate configuration returns 409.

Content generation context

Each run builds its prompt from:
  • Time range: the lookback window, computed in UTC at run time
  • Repositories: merged pull requests, commits, and releases across all selected repositories
  • Linear: completed issues from every enabled Linear integration
  • Brand identity: tone, audience, company details, and custom instructions

Cron expressions

Notra derives a cron expression from your configuration and evaluates it in UTC:

Run a schedule now

Open the row menu on the Schedules page and choose Run now. The run uses the current time and the configured lookback window: running a weekly schedule on a Tuesday analyzes the 7 days before that Tuesday, not the days before the scheduled Monday. Run now requires an enabled schedule and an active subscription.

Managing schedules

The Schedules page splits schedules into Active and Paused tabs. From the row menu you can:
  • Edit: change the name, sources, cadence, lookback window, format, brand identity, or auto-publish. Timing changes take effect for the next run.
  • Pause or Enable: turn the schedule off or on without deleting it.
  • Run now: start a run immediately.
  • Delete: remove the schedule.
A schedule whose repository integration was removed cannot be re-enabled until you edit it and pick another repository.

Monitoring

  • Content shows every generated post. Posts from a schedule are grouped into a collection per run.
  • Settings > Notifications can email you when scheduled content is created, when generation fails, and when a run is skipped because there was nothing worth writing about.
  • If the run hits GitHub’s API rate limit, Notra waits 30 minutes and retries up to three attempts before marking the run as failed.
  • If your plan quota for the format is used up and no AI credits are available, the run stops and workspace owners receive an email.

Common use cases

Weekly product updates

A LinkedIn post every Monday summarizing the previous week.

Monthly changelogs

A changelog roundup on the 1st of each month, auto-published.

Daily launch content

A daily tweet or image during a launch week from yesterday’s activity.

Monthly blog post

A long-form recap on the last 30 days for customers.

Best practices

Pick a cadence that matches your development pace. Teams shipping daily can use daily or weekly schedules; teams with monthly releases should schedule monthly.
  • Daily schedule: current_day or yesterday
  • Weekly schedule: last_7_days
  • Monthly schedule: last_30_days
A window much longer than the cadence repeats the same activity in consecutive posts.
Schedule times are UTC. The summary card in the dialog shows the next run in your local timezone so you can double-check.
Create separate schedules for separate outputs, for example a weekly changelog for customers and a weekly LinkedIn post for your network.
Treat scheduled content as drafts. Keep auto-publish off until you trust the output for that format.

Troubleshooting

Check:
  • The schedule is in the Active tab, not Paused
  • Your subscription is active and the format’s quota (or AI credits) is not used up
  • The repository integration still exists and is enabled
Use Run now to confirm the schedule can produce content at all.
Check:
  • The repositories have activity inside the lookback window
  • The repositories are still connected and accessible
  • Linear is enabled if you expect issues to be included
Runs with nothing meaningful to say are recorded as skipped; enable the Skipped notification to hear about them.
Check:
  • The lookback window fits your activity level
  • The brand identity has a tone, audience, and custom instructions
  • You are analyzing the right repositories
Adjust the window or the brand identity’s custom instructions and run the schedule again.

Next steps

Event-based automation

Trigger content generation from GitHub releases and pushes

Brand voice

Customize tone and style for scheduled content
Last modified on September 2, 2026