diff --git a/platform-includes/crons/setup/javascript.cloudflare.mdx b/platform-includes/crons/setup/javascript.cloudflare.mdx
index c51440a988a45..775fe097245c7 100644
--- a/platform-includes/crons/setup/javascript.cloudflare.mdx
+++ b/platform-includes/crons/setup/javascript.cloudflare.mdx
@@ -1,3 +1,40 @@
+## Cron Triggers
+
+
+
+If your Worker runs on [Cron Triggers](https://developers.cloudflare.com/workers/configuration/cron-triggers/), add `cronTriggersIntegration` to send check-ins for every run of the `scheduled` handler. Each check-in carries the trigger's cron expression as the schedule, so Sentry creates the monitor on the first run. The integration isn't enabled by default because each monitor it creates is billed.
+
+Cron Triggers have no names, and the `scheduled` handler only receives the cron expression. Keep one entry per trigger, keyed by its expression from `wrangler.toml`, with the job and its monitor slug, and use it for both:
+
+```javascript
+const jobs = {
+ "30 9 * * MON-FRI": { slug: "daily-report", run: dailyReport },
+ "0 */6 * * *": { slug: "sync-inventory", run: syncInventory },
+};
+
+export default Sentry.withSentry(
+ (env) => ({
+ dsn: env.SENTRY_DSN,
+ integrations: [
+ Sentry.cronTriggersIntegration({ slug: (cron) => jobs[cron]?.slug }),
+ ],
+ }),
+ {
+ async scheduled(controller, env, ctx) {
+ await jobs[controller.cron]?.run(env);
+ },
+ },
+);
+```
+
+When you change a schedule in `wrangler.toml`, change its key in `jobs`. The monitor keeps its slug, and Sentry updates its schedule on the next check-in. Triggers without an entry send no check-ins. The `slug` function can also return an object with the slug and other monitor options, such as `{ slug: "daily-report", maxRuntime: 30 }`.
+
+Without a `slug` function, the slug comes from the cron expression, so it changes when the schedule changes: `30 9 * * MON-FRI` becomes `cron-30-9-x-x-montofri` (`*` is written as `x`, `,` as `_`, `-` as `to`, and `/` as `by`). Expressions with other characters, or slugs longer than 50 characters, end in a hash of the expression. Workers that report to the same project and share a cron expression share a monitor.
+
+Cloudflare numbers the days of the week from 1 (Sunday) to 7 (Saturday), and Sentry numbers them from 0 (Sunday). The SDK converts the day-of-week field to day names before sending it, so `1-5` is sent as `SUN-THU`. For Monday to Friday, use `2-6` or `MON-FRI`. If the field can't be converted, check-ins are sent without a schedule, and you need to create the monitor in Sentry first.
+
+Runs without a cron expression, such as some manual runs with `--test-scheduled`, send no check-ins.
+
## Job Monitoring