Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
DictionarySSchedule
Core CRMIntermediate

Schedule

A Schedule in Salesforce refers to the time-based execution model that triggers a piece of automation, a forecast roll-up, a report, or a revenue allocation on a recurring calendar (daily, weekly, monthly, quarterly) or at a one-off future timestamp.

§ 01

Definition

A Schedule in Salesforce refers to the time-based execution model that triggers a piece of automation, a forecast roll-up, a report, or a revenue allocation on a recurring calendar (daily, weekly, monthly, quarterly) or at a one-off future timestamp. The term covers several distinct features that all share the calendar-driven shape: Scheduled Apex (System.schedule), Scheduled Flows, Reporting Snapshot schedules, Dashboard schedule refresh, Revenue Schedules on opportunity products, and the older Workflow Time-Based Actions.

Schedule is therefore a category, not a single feature. When a Salesforce admin or developer talks about "the schedule," the surrounding context tells you which Schedule they mean. A developer setting up overnight data cleanup talks about Scheduled Apex. A sales-ops person tracking installment billing talks about Revenue Schedules. A reporting analyst configuring a snapshot talks about the Schedule on the Reporting Snapshot. All three use the same calendar primitives but configure different platform behaviors.

§ 02

The six places "Schedule" appears in Salesforce and what each one means

Scheduled Apex

Scheduled Apex is a class that implements the Schedulable interface and runs at a configured cron expression. System.schedule('Nightly Cleanup', '0 0 2 * * ?', new MyClass()) wires up a 2 AM nightly run. The class can launch a Batch job, perform DML, call external APIs (with relaxed callout limits in async context), or queue Queueable jobs. Scheduled Apex is the workhorse for nightly data hygiene, end-of-month rollup recalculations, and periodic integrations. The platform supports up to 100 scheduled jobs per org concurrently.

Scheduled Flow

Flow Builder added Scheduled Flows for declarative time-based automation. A scheduled flow runs at a configured frequency (Once, Daily, Weekly) starting on a specified date, processes a defined record set, and executes the flow logic on each record. Scheduled flows replace many of the legacy workflow time-based actions and Apex Schedulable patterns with a no-code-friendly equivalent. Most new declarative time-based work should be in Scheduled Flow; Scheduled Apex is reserved for what flow cannot express.

Reporting Snapshot Schedule

A Reporting Snapshot runs on a configured schedule (Daily, Weekly, Monthly) and writes the result of its Source Report to a target custom object as point-in-time historical data. The schedule is the heartbeat of the snapshot: too frequent and the target object fills with redundant rows, too infrequent and trend analysis loses granularity. Monthly is the common default; daily for high-velocity metrics that need fine-grained trends.

Dashboard Refresh Schedule

Lightning Dashboards support scheduled refreshes (Daily, Weekly, or Specific Days) where the platform re-runs every source report at the scheduled time and updates the dashboard data. Users opening the dashboard see the latest refresh without manually clicking the Refresh button. This is essential for executive dashboards where leadership expects current numbers without having to wait through a multi-minute manual refresh. The user setting the schedule must have permission to refresh that dashboard.

Revenue Schedules

Revenue Schedule is a Sales Cloud feature on opportunity line items that splits the revenue across time periods (monthly, quarterly). A $12,000 annual subscription deal can have a Revenue Schedule of $1,000 per month for 12 months, instead of $12,000 booked at close. Sales ops uses this to model subscription revenue accurately in forecasts and dashboards. Revenue Schedules are configured per Product (Enable Quantity Schedule, Enable Revenue Schedule) and per Opportunity Line Item.

Cron expression mechanics

Scheduled Apex uses cron expressions for fine-grained timing. The format is seconds, minutes, hours, day of month, month, day of week, year. Common patterns: 0 0 2 * * ? (2 AM every day), 0 0 9 ? * MON-FRI (9 AM weekdays), 0 30 23 L * ? (11:30 PM on the last day of every month). Salesforce cron does not support seconds granularity below 60-second intervals; Scheduled Flow simplifies this to a UI picker with no cron syntax required.

Limits and concurrency

Salesforce caps concurrent scheduled jobs at 100 per org. Each scheduled job consumes one Apex Async governor slot when it runs. Long-running schedulable code that exceeds the synchronous CPU limit should immediately enqueue a Batch or Queueable inside its execute method so the heavy lifting runs in the more permissive async context. Customers managing dozens of scheduled jobs typically build a single master scheduler that dispatches to other jobs, reducing the org-wide schedule count.

§ 03

Set up a Scheduled Apex job for nightly maintenance

Build an Apex class implementing Schedulable, schedule it with a cron expression, and verify it runs on the expected cadence.

  1. Write the Schedulable class

    Create an Apex class implementing the Schedulable interface. The execute method takes a SchedulableContext and runs your logic (typically calls Database.executeBatch on a Batch Apex class).

  2. Write a unit test

    Test the schedulable class by calling System.schedule inside Test.startTest and Test.stopTest. The test confirms the schedule registers without an exception.

  3. Deploy the class

    Deploy through Salesforce DX, change set, or Developer Console. Confirm Apex Test coverage stays above the 75 percent platform minimum.

  4. Schedule the job

    Open Setup, Apex Classes, click Schedule Apex. Choose the class, set the frequency (Weekly, Monthly, specific cron), and the start time. Save.

  5. Monitor the first run

    Open Setup, Scheduled Jobs. The scheduled job appears with the next run timestamp. After the first run, open Apex Jobs to confirm completion.

  6. Set up failure alerts

    For production jobs, add try/catch logging to the execute method that writes failures to a custom Apex Log object or sends an email to ops. Silent failures are the most common scheduled job incident.

Key options
Scheduled Apexremember

Code-based scheduled execution using the Schedulable interface and a cron expression.

Scheduled Flowremember

Declarative scheduled automation built in Flow Builder; preferred for no-code patterns.

Reporting Snapshotremember

Scheduled job that writes a source report to a target object for historical trend analysis.

Revenue Scheduleremember

Opportunity line item feature that splits revenue across time periods for subscription modeling.

Cron Expressionremember

Time-pattern syntax for fine-grained scheduling in Scheduled Apex.

Gotchas
  • Salesforce caps scheduled Apex jobs at 100 per org. A team that schedules many small jobs hits the cap; consolidate through a master scheduler that dispatches.
  • Cron expressions in Salesforce use seven fields (seconds-minutes-hours-day-month-dayofweek-year). Linux cron uses five; do not paste a Linux cron directly.
  • Scheduled jobs in a paused org still queue but do not execute until the org resumes. After a sandbox refresh, scheduled jobs may need to be re-registered.
  • Revenue Schedule cannot coexist with Quantity Schedule on the same product. Enable one or the other based on how you model subscription revenue.
§

Trust & references

Sources

Cross-checked against the following references.

Official documentation

Straight from the source - Salesforce's reference material on Schedule.

Keep learning

Hands-on resources to go deeper on Schedule.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

Q1. What is scheduling in Salesforce?

Q2. What intervals are supported?

Q3. What should you document?

§

Discussion

Loading…

Loading discussion…