posthog/managing-reminders
Create and manage PostHog reminders — private, human-paced nudges that fire as in-app notifications on a schedule, optionally linked to a PostHog resource. Use when the user says "remind me to…", wants a one-off or recurring nudge (daily/weekly/monthly/yearly, a cron schedule, or a specific date/time), wants to be reminded to look at a dashboard, insight, experiment, feature flag, survey, notebook, replay, or error, or wants to list, change, or cancel their reminders. Covers when to pick a reminder over an alert or subscription, the one-off vs recurring vs cron schedule field mappings, timezones, and attaching a resource.
This is a copy. The original lives at posthog/ai-plugin-managing-reminders.
npx skills add https://github.com/PostHog/posthog --skill managing-reminders
This skill guides you through creating and managing PostHog reminders.
A reminder is a private, human-paced nudge to yourself: it fires an in-app notification
on a schedule, with no condition attached. It can optionally link to a PostHog resource.
Use this skill when the user:
These three look similar but solve different jobs. Pick the right one:
in-app notification on a schedule ("remind me to review the launch dashboard every Monday").
If the user says "remind me to…", it is a reminder.
threshold or anomaly condition is met ("tell me if signups drop below 100").
email, Slack, or webhook ("email me this dashboard every morning").
If there is a condition to evaluate, it is an alert. If there is an export to deliver, it is a
subscription. If it is just a timed nudge to a person, it is a reminder.
A reminder uses exactly one of scheduled_at, recurrence_interval, or cron_expression.
Providing zero or more than one is rejected.
Set scheduled_at to a future ISO 8601 timestamp. The reminder fires once, then becomes completed.
| User says | Field |
| --------------------------- | ---------------------------------------------------- |
| "remind me tomorrow at 3pm" | scheduled_at: <tomorrow 15:00 in the user's tz> |
| "remind me on Jan 5 at 9am" | scheduled_at: "2026-01-05T09:00:00" (+ timezone) |
Set recurrence_interval to one of daily, weekly, monthly, yearly.
| User says | Field |
| ------------- | -------------------------------- |
| "every day" | recurrence_interval: "daily" |
| "every week" | recurrence_interval: "weekly" |
| "every month" | recurrence_interval: "monthly" |
| "every year" | recurrence_interval: "yearly" |
Set cron_expression to a 5-field cron string (min hour day-of-month month day-of-week) when
the cadence is a specific weekday or time the presets can't express.
| User says | Field |
| -------------------------- | --------------------------------- |
| "every Monday at 9am" | cron_expression: "0 9 * * 1" |
| "weekdays at 8:30" | cron_expression: "30 8 * * 1-5" |
| "1st of the month at noon" | cron_expression: "0 12 1 * *" |
A reminder may fire at most 4 times per day — a more frequent cron (e.g. hourly) is rejected.
Always pass timezone as the user's IANA zone (e.g. "America/New_York") when you know it, so
wall-clock times like "9am" resolve to the right moment. If omitted, it defaults to the **project
timezone**. Cron and preset schedules resolve in this zone; scheduled_at is an absolute instant,
so include its offset or rely on the same zone.
To link the reminder to a PostHog object, set resource_type and resource_id together.
The fired notification deep-links to that object. The resource must already exist in the project.
| resource_type | resource_id is the… |
| ---------------- | --------------------- |
| dashboard | numeric id |
| insight | short_id |
| experiment | numeric id |
| feature_flag | numeric id |
| survey | id |
| notebook | short_id |
| replay | session_id |
| error_tracking | issue id |
Resolve the id first if the user gives you a name or URL (e.g. fetch the insight to get its
short_id). Omit both fields for a standalone reminder with no linked resource.
users never see them.
completed after it fires.active until deleted, or until its optional end_date passes(then it becomes completed).
errored — surface this via reminders-listwhen reporting on a user's reminders.
reminder-create — create a reminderreminders-list — list the user's reminders (schedule, status, next fire time)reminder-get — get one reminder by idreminder-update — update title, message, schedule, timezone, end date, or attached resource(changing the schedule recomputes the next fire time)
reminder-delete — delete a reminder, which stops it firingUser: "Remind me to review the launch dashboard every Monday at 9am."
67).reminder-create:{
"title": "Review the launch dashboard",
"resource_type": "dashboard",
"resource_id": "67",
"cron_expression": "0 9 * * 1",
"timezone": "America/New_York"
}
Confirm back to the user when it will next fire (use next_fire_at from the response), and that
it will keep firing weekly until they delete it.
Take posthog/managing-reminders from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.