RealtimeKeep your app up to date
AuthenticationOver 80+ OAuth integrations
Convex Components
ComponentsIndependent, modular, TypeScript building blocks for your backend.
Open sourceSelf host and develop locally
AI CodingGenerate high quality Convex code with AI
Compare
Convex vs. Firebase
Convex vs. Supabase
Convex vs. SQL
DocumentationGet started with your favorite frameworks
SearchSearch across Docs, Stack, and Discord
TemplatesUse a recipe to get started quickly
Convex for StartupsStart and scale your company with Convex
Convex ChampionsAmbassadors that support our thriving community
Convex CommunityShare ideas and ask for help in our community Discord
Stack
Stack

Stack is the Convex developer portal and blog, sharing bright ideas and techniques for building with Convex.

Explore Stack
BlogDocsPricing
GitHub
Log inStart building
Back

Scheduled functions & crons

Configure functions to run periodically

Built-in functionality

Convex lets you run functions asynchronously: on a pre-defined schedule or dynamically at a chosen time. You can schedule a mutation or action function to run later. If you are scheduling from a mutation (a read/write transaction, for those of you new to Convex), the scheduling is also transactional: the scheduled functions will only run if the mutation successfully commits, allowing you to build robust workflows with strong guarantees.

The power of abstraction

Strong guarantees allow building robust libraries to handle automatically retrying actions (a serverless function environment that is allowed to be non-deterministic and have side effects like making http requests), and build abstractions for crons entirely on top of Convex.

It also allows you to store metadata about currently running jobs, along with IDs that provide access to the asynchronous function status, allowing you to build workflow abstractions and manage your own queuing.

Screen grab of Scheduled functions & crons in action

Resources

📄DOCS
Schedule functions for durable workflows
docs.convex.dev/scheduling/scheduled-functions
📄DOCS
Statically configure periodic functions with crons
docs.convex.dev/scheduling/cron-jobs
💡BLOG
Dynamically configure crons using a library
stack.convex.dev/cron-jobs
💡BLOG
Use a helper to automatically retry actions to build reliable workflows
stack.convex.dev/retry-actions
💡BLOG
Ideas for using tables to track asynchronous job status
stack.convex.dev/background-job-management
Get your app up and running in minutes
Start building
Convex logo
ProductSyncRealtimeAuthOpen sourceAI codingChefFAQPricing
DevelopersDocsBlogComponentsTemplatesStartupsChampionsChangelogPodcastLLMs.txt
CompanyAbout usBrandInvestorsBecome a partnerJobsNewsEventsTerms of servicePrivacy policySecurity
SocialTwitterDiscordYouTubeLumaBlueskyGitHub
A Trusted Solution
  • SOC 2 Type II Compliant
  • HIPAA Compliant
  • GDPR Verified
©2025 Convex, Inc.