# Job Scheduling ## Getting Started -------------------------------------------------------------------------------- title: "Introduction" description: "Learn about getting started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.554Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/getting-started/introduction/" service: "Job Scheduling" related: - Job Pool Help (/en/job-scheduling/help/jobpool/introduction/) - Cron Help (/en/job-scheduling/help/cron/introduction/) - Job Help (/en/job-scheduling/help/job/introduction/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Catalyst Job Scheduling ### Introduction Job Scheduling is a Catalyst service that allows you to configure and submit {{%link href="/en/job-scheduling/help/job/introduction/" %}}jobs{{%/link%}} and execute them in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} to trigger a {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Webhook{{%/link%}} (any third-party URL), {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}}, or {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} service. You can also schedule the execution of custom logic, invoke a complete workflow by triggering a *Circuit*, invoke any third-party URL, and also execute an entire microservice, or application that is hosted on Catalyst *AppSail*. Using the components of Job Scheduling, you can perform any computational, operational, administrative, or any kind of maintenance jobs. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} Furthermore, the service offers two types of crons- {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types" %}}Pre-defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types"%}}Dynamic Crons{{%/link%}}, that you can use to precisely schedule the submission of the job. Dynamic Crons in particular allow you to schedule the submission of jobs through code, and they can be created dynamically during runtime. You can also set {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}} to provide you with e-mail alerts in events of failure, delays, etc., and track every instance of the job cycle in the console. Job Scheduling provides you with increased control over how you submit your job, to be more precise over when you wish the job to be submitted, and to perform efficient operations in the event of a failure. This Catalyst service also comes with a robust {{%link href="/en/job-scheduling/help/dashboard/dashboard/" %}}Dashboard{{%/link%}} component that provides detailed insights over the performance of your jobs across the project. To quickly perform Job Scheduling operations through code, Catalyst offers you the required SDK support in: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} Catalyst also offers you a robust set of {{%link href="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools" %}}REST APIs{{%/link%}} that you can use to employ Job Scheduling operations. {{%note%}}{{%bold%}}Note:{{%/bold%}} Along with Catalyst Job Scheduling service, Catalyst also offers you a host of other services like a {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}powerful RDBMS component{{%/link%}}, easy-to-setup {{%link href="/en/cloud-scale/help/authentication/introduction/" %}}Authentication{{%/link%}}, and more through {{%link href="/en/cloud-scale/" %}}Catalyst Cloud Scale service{{%/link%}}. You can also employ the {{%link href="/en/serverless/" %}}Catalyst Serverless service{{%/link%}} that offers you {{%link href="/en/serverless/help/functions/introduction/" %}}FaaS components{{%/link%}}, or the {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} platform that allows you to host applications on the Catalyst cloud with no restrictions on framework, coding, or scale. You can always familiarize yourself with these Catalyst components by trying out our intuitive and interactive {{%link href="/en/tutorials/" %}}tutorials{{%/link%}}.{{%/note%}} You can find out the steps to submit an immediate job by heading over to the {{%link href="/en/job-scheduling/getting-started/quick-start-guide/" %}}Quick Start Guide{{%/link%}}. We also strongly urge you to head over to the components documentation {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}here{{%/link%}} to understand the Job Scheduling service and its components in a more precise manner to ensure you use the service to its fullest potential. <br /> -------------------------------------------------------------------------------- title: "Components of Job Scheduling" description: "Learn about getting started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/getting-started/components-of-job-scheduling/" service: "Job Scheduling" related: - Job Pool Help (/en/job-scheduling/help/jobpool/introduction/) - Cron Help (/en/job-scheduling/help/cron/introduction/) - Job Help (/en/job-scheduling/help/job/introduction/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Components of Job Scheduling {{%fieldset title="OVERVIEW" %}} {{%fieldset-card icon="job-dashboard-icon" path="/en/job-scheduling/help/dashboard/dashboard/" title="Dashboard"%}}Provides a complete overview and the stats on each job's progress{{%/fieldset-card%}} {{%/fieldset%}} <br /> {{%fieldset title="JOB SOURCE" %}} {{%fieldset-card icon="jobpool-icon" path="/en/job-scheduling/help/jobpool/introduction/" title="Job Pool"%}}Every job created will be submitted to a Job Pool and will get executed from the Job pool{{%/fieldset-card%}} {{%/fieldset%}} <br /> {{%fieldset title="JOB EXECUTOR" %}} {{%fieldset-card icon="new-cron-icon" path="/en/job-scheduling/help/cron/introduction/" title="Cron"%}}Schedules the submission of jobs to a job pool. Acheive this through code or using the UI Builder{{%/fieldset-card%}} {{%fieldset-card icon="jobs-icon" path="/en/job-scheduling/help/job/introduction/" title="Jobs"%}}Tasks that are to be executed once or periodically to trigger Job Functions, Webhooks, Circuits, or AppSail services{{%/fieldset-card%}} {{%/fieldset%}} <br /> As represented above, Catalyst Job Scheduling consists of four components, explained below. ### Dashboard This component provides an overview of all the {{%link href="/en/job-scheduling/help/job/introduction/" %}}jobs{{%/link%}} and {{%link href="/en/job-scheduling/jobpool/introduction/" %}}job pools{{%/link%}} associated with the project. The **Dashboard** allows you to quickly comprehend the statuses of the jobs that were executed or currently in progress. It's also a great tool to precisely filter out the exact instances in which a job execution failed in a job pool. <br /> ### Job Pool A Job Pool is a collection of a specific set of jobs, that will be executed to trigger specific target types. Job Pools can be created based on the following types: * {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Functions{{%/link%}}: Will collect and execute jobs that trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}. * {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Webhooks{{%/link%}}: Will collect and execute jobs that trigger any third-party URLs. * {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Circuits{{%/link%}}: Will collect and execute jobs that trigger a {{%link href="/en/serverless/help/circuits/implementation/" %}}configured Circuit{{%/link%}}. * {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}AppSail{{%/link%}}: Will collect and execute jobs that trigger a {{%link href="/en/serverless/help/appsail/build-debug-deploy-appsail/overview/" %}}deployed AppSail service{{%/link%}}. <br /> Job Pools also allow to view the progress and the state of all the jobs that are submitted to it. You can also create {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}} within the Job Pool in the console. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} ### Cron Cron allows you to schedule and automate job submissions to a Job Pool one time and recursively. You can create two types of crons- {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types" %}}Pre-defined{{%/link%}} and {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types" %}}Dynamic{{%/link%}}. Crons can either be scheduled to submit jobs {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}one-time{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}recursively{{%/link%}}. The schedule type of both of these crons can be configured either using the {{%link href="/en/job-scheduling/help/cron/key-concepts/#format-type" %}}standard calendar format{{%/link%}}, or using regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}}. **Pre-Defined Crons**: These can be defined in advance using the Builder feature present in the console. <br /> **Dynamic Crons**: These are crons that are ideally defined through code using the Catalyst SDKs available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/"%}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. Dynamic crons are created during dynamically during runtime, only when they are required. Templates for creating dynamic crons are also available as code snippets in the console. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} * When you deploy the project to production, only the Pre-defined Crons will be migrated. Dynamic Crons that were created during development will only be present in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}{{%bold%}}development environment{{%/bold%}}{{%/link%}}. * However, you can create only dynamic crons in the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}{{%bold%}}production environment{{%/bold%}}{{%/link%}}, using the console's {{%italics%}}Builder{{%/italics%}} or through code. This feature will allow you to test the functionality of your dynamic cron during runtime. If the configuration is satisfactory, you can then implement the same configuration through code.{{%/note%}} ### Jobs Jobs are the tasks you create, configure and submit to a Job Pool to trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, webhook, Circuit, or an App Sail service. You have to create a job pool first to create a job. You can create a job for immediate execution or automate its creation using a cron. You have the option to manually create jobs and submit them to a job pool using the console's builder, or through code. You can also schedule and automate the submission of jobs to a job pool using crons. <br /> In the console, the Jobs component will allow you to view the statuses of the jobs submitted, created and deleted. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} -------------------------------------------------------------------------------- title: "Benefits" description: "Learn about getting started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/getting-started/benefits/" service: "Job Scheduling" related: - Job Pool Help (/en/job-scheduling/help/jobpool/introduction/) - Cron Help (/en/job-scheduling/help/cron/introduction/) - Job Help (/en/job-scheduling/help/job/introduction/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Benefits * **Submit job to trigger versatile target types**<br />With Job Scheduling, you can execute jobs in job pools to trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, Webhooks (any **third-party URL**), {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, or {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} services. By triggering Job Functions, you can invoke any custom business logic you have coded in job function at a scheduled time. By triggering circuits, you can trigger complete workflows you have configured using Catalyst Serverless' Circuit component. By triggering AppSail services, you can invoke entire microservices or applications you have hosted using Catalyst AppSail service. * **Execute jobs instantly**<br />Job Scheduling allows you to configure crons that can submit jobs to a job pool with time intervals, as short as **one minute**. You can also execute jobs that trigger multiple endpoints in different job pools parallely. You only need to handle the configuration and submit action of the job, Catalyst will handle all the backend requirements automatically. * **Configure and submit jobs with the simplest steps**<br />You can create, configure, and submit jobs using the highly intuitive Builder feature present in the Console. You can create any kind of Job, and you have a wide range of inputs you can provide to precisely choose the time period or interval when you wish the Job to be executed and the end-point you wish to trigger, all in a few steps. * **Submit jobs through code**<br />With {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}} and the Catalyst SDK ({{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}) support, you can code crons to get created dynamically that can submit jobs during runtime. As is with the majority of the Catalyst components, you need only code the logic to create the cron or submit the job; the remaining backend requirements will be automatically handled by Catalyst. * **Seamlessly scalable**<br />Catalyst servers can seamlessly handle heavy workloads, and they can automatically scale up or down based on the requirements. This enables developers to solely focus on configuring the cron job and coding the logic, without needing to perform any additional tasks to handle the backend setup or maintenance. Catalyst’s cron jobs execute seamlessly regardless of the load, as they are executed on Zoho’s tried-and-tested, reliable infrastructure. * **Immediate and Precise Alerts**<br />Catalyst provides you with the advantage of configuring custom, automated alerts to be received when a cron encounters an exception, failure, or time out through {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}}. Catalyst will send these alerts immediately via email upon the cases you specify. This enables you to keep a track of the cron jobs in all your projects easily and implement immediate fixes during failures. Along with setting an alert, you can also configure the number of retry attempts that need to occur automatically in the event of a failure. This feature provides you with a chance to execute your job again successfully if it gets interrupted by factors like network disruption, loss of network, etc. {{%note%}}{{%bold%}}Note{{%/bold%}}: The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} -------------------------------------------------------------------------------- title: "Use Cases" description: "Learn about getting started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/getting-started/use-cases/" service: "Job Scheduling" related: - Job Pool Help (/en/job-scheduling/help/jobpool/introduction/) - Cron Help (/en/job-scheduling/help/cron/introduction/) - Job Help (/en/job-scheduling/help/job/introduction/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Use Cases * **Case 1**<br /><br /> **Business Bottleneck**<br />Ensuring priority email notifications are sent promptly to the required consumers.<br /><br />Imagine you have an application where you provide your users with a subscription-based service. You need to remind your users to renew their subscription on time to ensure you are promptly paid for services rendered and they continue to enjoy their service uninterrupted. Additionally, you will also need to keep your users well-informed on the latest offers and promotions.<br /><br /> **Job Scheduling Solution**<br />The required actions can be handled easily by scheduling a {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}} to {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}submit a job to the Job Pool{{%/link%}} that triggers a circuit. The circuit will ultimately send an email to your user. On the surface, the tasks are basic actions of email prompts targeted at your users. However, reminding them about their payment is a task of a higher priority, and cannot encounter any delays.<br /><br >Without a Job Pool, both of these tasks will be given equal priority. When dealing with a large volume of jobs, this might give rise to a {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}possible dispatch delay{{%/link%}} in executing the job responsible for reminding your users about their payment. With the advantage of creating multiple Job Pools, you can have a Job Pool that exclusively queues and executes jobs that trigger circuits that send out payment reminders, and another Job Pool that executes lesser priority jobs. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} * **Case 2**<br /><br /> **Business Bottleneck**<br />Providing the required services while balancing excessive demand.<br /><br />Consider platforms that sell concert or gala tickets. They usually tend to be high-traffic online places, that crash frequently and have a very limited open window.<br /><br /> **Job Scheduling Solution**<br />You can develop a microservice that reminds your end-user at an optimal time of concerts and events based on their interests. {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Using a Pre-defined cron{{%/link%}}, you can keep submitting {{%link href="/en/job-scheduling/help/job/introduction/" %}}jobs{{%/link%}} to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} to trigger the ticketing platform URL periodically and check if an announcement is released. When an end-user's desired announcement is released, you can {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}configure a dynamic cron{{%/link%}} to send out scheduled alerts and ensure that they successfully book their desired tickets at an optimal time. -------------------------------------------------------------------------------- title: "Quick Start Guide" description: "Learn about getting started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.556Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/getting-started/quick-start-guide/" service: "Job Scheduling" related: - Job Pool Help (/en/job-scheduling/help/jobpool/introduction/) - Cron Help (/en/job-scheduling/help/cron/introduction/) - Job Help (/en/job-scheduling/help/job/introduction/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Quick Start Guide Job Scheduling is a robust Catalyst service that allows you to create and schedule tasks that can be executed with the quickest time interval of **one minute**. You can create and submit jobs to a {{%link href="/en/job-scheduling/help/jobpool/introduction" %}}Job Pool{{%/link%}}, and they will be executed automatically at the scheduled time period or interval. Using Job Scheduling, you can trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail services{{%/link%}}, Webhooks (**any third-party URL**), and {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} In this section, we will be going over how to incorporate Catalyst Job Scheduling with your Catalyst project. ### Create a Project Use the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}} to {{%link href="/en/getting-started/quick-start-guide/#step-1-create-a-catalyst-project" %}}create a new project{{%/link%}}. After the project creation is complete, you will be able to access all components of Job Scheduling and other Catalyst services from the console. ### Engineer Your Application * You can initialize the project locally using the {{%link href="/en/cli/v1/initialize-resources/introduction/" %}}Catalyst CLI{{%/link%}}, and start coding your business logic into {{%link href="/en/serverless/help/functions/introduction/" %}}Catalyst Serverless Functions{{%/link%}}, with either {{%link hef="/en/sdk/java/v1/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/overview/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/overview/" %}}Python{{%/link%}}, using an external IDE of your choice, or directly create them in the console. You can also utilize code templates from Catalyst SDK and employ prebuilt API endpoints from {{%link href="/en/api/introduction/overview-and-prerequisites/#OverviewandPrerequisites" %}}Catalyst API{{%/link%}} to incorporate {{%link href="/en/cloud-scale/" %}}Cloud Scale{{%/link%}} components in your business logic. * You can also enhance your application using AI/ML powered components of {{%link href="/en/zia-services/" %}}Catalyst Zia Services{{%/link%}}. You can also engineer bots for your application using {{%link href="/en/convokraft/" %}}Catalyst Convokraft{{%/link%}}, or test your application on a headless browser with automation libraries using {{%link href="/en/smartbrowz/" %}}Catalyst SmartBrowz{{%/link%}}. ### Access Job Scheduling Components * Navigate to Job Scheduling service in the console. You can first create a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}} for your project. Inside this Job Pool, you can create {{%link href="/en/job-scheduling/help/job/introduction/" %}}jobs{{%/link%}}, or you can submit jobs created from the Jobs component section to this Job Pool, that can be executed either immediately or scheduled using the {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}} component. You also have a {{%link href="/en/job-scheduling/help/dashboard/dashboard/" %}}Dashboard{{%/link%}} that you can use to see the status of the Jobs that have been executed. * When you schedule jobs using **Cron**, you choose to configure them as {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}, or {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Pre-defined Crons allow you to configure and schedule jobs using the console UI. Dynamic Crons can be configured using the Catalyst SDK ({{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}) and be executed through code during runtime. Additionally, you can use regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}} to configure the schedule of the cron. * You can go through the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}help documentation{{%/link%}} of each of these components to understand the optimal ways Job Scheduling helps you to build robust solutions and applications. ### Configure Job Scheduling for Your Project Depending on your requirement, the steps you need to employ the following steps to trigger the required target type: {{%tabs%}} {{%tab "Job Function" %}} * You need to initialize the {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, or create it in the Serverless console. * Code your custom business logic and {{%link href="/en/cli/v1/deploy-resources/deploy-options/" %}}deploy{{%/link%}} it to the Catalyst console using the following CLI command: {{%cli%}}catalyst deploy --only functions{{%/cli%}} * Navigate to the Job Scheduling section of the console, and {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}create a Function Job Pool{{%/link%}} with a higher {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}allocated memory{{%/link%}} then your Job Function. * Create your required job and point it to the Function Job Pool. You can then use a **Pre-defined** or **Dynamic** cron to schedule the submission of the created job to the job pool. When it is executed, it will trigger the *Job Function*, and your custom business logic will be executed. {{%/tab%}} {{%tab "Webhook" %}} * {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Create a Webhook Job Pool{{%/link%}}. * When you create a job to submit to this job pool, you can configure it to trigger any **third-party URL**. * You can schedule the submission of this job to the job pool using a **Pre-defined Cron** or **Dynamic Cron**. * At the scheduled time, when the job is submitted to the job pool, it will be executed in the job pool, and the configured third-party URL will be triggered. {{%/tab%}} {{%tab "Circuits" %}} * You need to create and {{%link href="/en/serverless/help/circuits/implementation/" %}}configure a circuit{{%/link%}} using the Catalyst *Serverless* component Circuits. * You need to ensure the {{%link href="/en/serverless/help/functions/basic-io/" %}}Basic I/O functions{{%/link%}} that are required to configure the circuit are all created, coded, deployed and available in the console. * {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Create a Circuit Job Pool{{%/link%}} using the Job Scheduling service, and configure it your requirement. * When you create a {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}job to trigger the circuit{{%/link%}}, you need to select the created circuit as it's target. * You can schedule the submission of this job to the job pool using a **Pre-defined Cron** or **Dynamic Cron**. * At the scheduled time, the job will be submitted to the job pool, and the required circuit will be triggered. This will invoke the configured workflow. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} {{%/tab%}} {{%tab "AppSail" %}} * Once you have created your required microservice or application, you need to {{%link href="/en/cli/v1/deploy-resources/deploy-appsail/" %}}host it on Catalyst using AppSail{{%/link%}}. * {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Create an AppSail Job Pool{{%/link%}} using the Job Scheduling service, and configure it your requirement. * Create a job to submit to this job pool, and ensure you have selected the required AppSail service as the target. * You can schedule the submission of this job to the job pool using a **Pre-defined Cron** or **Dynamic Cron**. * At the scheduled time, the job will be submitted to the job pool. The job pool will then execute the job and the required AppSail service's endpoint will be triggered. {{%/tab%}} {{%/tabs%}} ### Test the Application You can {{%link href="/en/cli/v1/serve-resources/introduction/" %}}test the client components{{%/link%}} of your application locally before deploying it to the remote console using the following CLI command: {{%cli%}}catalyst serve{{%/cli%}} ### Deploy the Application You can now {{%link href="/en/cli/v1/deploy-resources/introduction/" %}}deploy your application{{%/link%}} from the CLI to your project in the remote console using the following CLI command: {{%cli%}}catalyst deploy{{%/cli%}} ### Post-Production & Monitoring the Application You can deploy your project to production after you test and freeze it in the development environment. You can create a custom domain for your application using the Domain Mappings component, if needed. You can also monitor the performance of your application using Catalyst DevOps components like Application Performance Monitoring or Logs. {{%note%}}{{%bold%}}Note:{{%/bold%}} The sequence of steps specified here might differ based on your business or application logic, or your specific use case. The flow mentioned in the deploying and testing phases of the application can be altered based on your requirements. This is a generic set of guidelines that is suitable for a typical small to mid-scale, client-based application, or microservice.{{%/note%}} ## Help ### Cron -------------------------------------------------------------------------------- title: "Introduction" description: "Cron is a Job Scheduling component that allows you to schedule the creation and submission of a job to a Job Pool at a particular time." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/cron/introduction/" service: "Job Scheduling" related: - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Cron Expressions (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Cron ### Introduction Cron is a Job Scheduling component that allows you to schedule the creation and submission of a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a particular time. Cron can perform this function recursively based on a custom schedule. When a cron is configured, Catalyst initiates the cron daemon to run in the background always. The cron daemon is a program that is responsible for submitting a job to the Job Pool when its determined schedule approaches. <br /> Cron can submit jobs to a Job Pool once or recursively by defining the specific date and time of the execution or the interval period for recursion. There are two types of cron: * **Pre-defined Cron**: This type of cron can be created in the console, and they are configured with the exact time or time periods on when they should be submitting jobs to Job Pools. These crons will be migrated to the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}production environment{{%/link%}} when you {{%link href="/en/cli/v1/deploy-resources/introduction/" %}}deploy your project{{%/link%}} to production. These type of crons are generally used for the functionality of web applications. <br /> * **Dynamic Cron**: This type of cron is ideally created using the Catalyst SDK, available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. This cron type will be created dynamically through code during runtime, and they will submit jobs to the Job Pool during runtime. These crons cannot be migrated to the production environment. It also cannot be migrated from one project to another project using IaC import/export operation. Dynamic crons are generally employed based on end-user functionality. <br /> Crons can submit a jobs the Job Pool to execute webhooks(**any third-party URL**), {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} services. A cron **strictly acts as a scheduler** that submits jobs to the Job Pool. It is the Job Pool that queues and executes the scheduled jobs to invoke the configured target type. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} You can use the console *Builder* to configure **Pre-Defined** and **Dynamic** crons. Additionally, to define the schedule of a cron, you can implement regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}}. You can use **Cron Expressions** to configure the schedule of a cron while creating it using the *Builder* or through code using the Catalyst SDK. {{%note%}}{{%bold%}}Note:{{%/bold%}} * Learn more about {{%bold%}}Cron Expressions{{%/bold%}} and its syntax from this {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}help section{{%/link%}}. * While Catalyst offers you the option to create Dynamic Crons using the Console's {{%italics%}}Builder{{%/italics%}}, it is strongly advised you use it solely for testing Dynamic Cron's configurations when the project is in the production environment. * We strongly urge you to use the {{%italics%}}Builder{{%/italics%}} to create Pre-defined Crons and use Catalyst SDK to create Dynamic Crons.{{%/note%}} Catalyst offers robust SDKs to use crons and perform cron operations easily through your code in the following runtimes: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} Catalyst also offers you {{%link href="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools" %}}REST APIs{{%/link%}} to perform cron operations. -------------------------------------------------------------------------------- title: "Key Concepts" description: "Cron is a Job Scheduling component that allows you to schedule the creation and submission of a job to a Job Pool at a particular time." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/cron/key-concepts/" service: "Job Scheduling" related: - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Key Concepts In this section, we are going to go over some definitions and concepts about the Cron component to ensure you utilize cron effectively. ### Cron Types There are two types of cron: **Pre-Defined Cron** and **Dynamic Cron**. The following table illustrates their differences and their uses: <table class="content-table"> <thead> <tr> <th class="w20p">Criteria</th> <th class="w40p">Pre-Defined Cron</th> <th class="w40p">Dynamic Cron</th> </tr> </thead> <tbody> <tr> <td>Definition</td> <td>These crons are created and configured using the {{%italics%}}Builder{{%/italics%}} feature present in the console.</td> <td>These crons can also be configured using the {{%italics%}}Builder{{%/italics%}} feature. However, since these crons are meant to be created dynamically during production runtime, the ideal practice is to create and configure these crons through code with the support of Catalyst SDKs in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}.</td> </tr> <tr> <td>Primary advantage</td> <td>You can create and configure these crons with no additional coding.<br />These crons can be migrated to the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}Production environment{{%/link%}}, when you deploy your project.</td> <td>Since these crons are created dynamically during runtime, you can create and configure them using code.<br />Greater flexibility to configure cron precisely to satisfy your requirement.</td> </tr> <tr> <td>Primary restriction</td> <td>Despite having multiple customization options, there could arise a possibility where you encounter minor restrictions in terms of precisely satisfying your requirement.<br />For example, it is not possible for you to allow end-users to create your cron. The functionality of this type of cron is best suited for static purposes.</td> <td>Crons created in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}Development environment{{%/link%}} will not be migrated to the Production environment when you deploy your project.</td> </tr> <tr> <td>Cron Expression compatibility</td> <td>The {{%italics%}}Builder{{%/italics%}} provides you with format options that allow you to configure the schedule of these crons using Cron Expressions</td> <td>Catalyst SDK supports the usage of Cron Expressions to define the schedule of the cron.</td> </tr> <tr> <td>Ideal example use cases</td> <td>Suitable for any type of use case, where you require a cron to schedule and periodically execute tasks on the assumption of preset conditions.<br />Also suitable for use cases where you require the cron you created in development to be present during production.</td> <td>You can use this type of cron to satisfy any type of use case, where you require a particular action to occur at a particular time.<br />Since these crons are created through code, it allows you to create crons with greater flexibility to employ versatile solutions.</td> </tr> </tbody> </table> ### Cron ID Cron ID is the unique ID generated by Catalyst when you create a Pre-defined or Dynamic cron. <br /> ### Format Type There are two format types you can use to configure your cron: * **Standard**: Standard is the format type to select if you prefer to use the UI Calendar-based options present in your builder to configure your cron. <br /> * **Cron Expression**: You use regex-like expressions to configure your cron. The expression allows you to configure cron in a quicker manner. Additionally, it allows you easily migrate crons you configured using other services to Job Scheduling's Cron. Using cron expressions also provides you with more flexibility in configuring crons as you have greater input freedom. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Both the format types are supported in Catalyst SDK. You can employ the relevant SDK in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} and configure your cron through code.{{%/note%}} ### Cron Expressions This is a format type you can choose to configure your cron. You can use these special expressions to provide five inputs to complete the configuration of your cron. <br /> Study this section carefully to utilize Cron Expressions correctly. {{%note%}}{{%bold%}}Note:{{%/bold%}} If you happen to make any syntax mistake while using Cron Expressions, the cron will not be executed.{{%/note%}} #### Input fields present in cron expressions <table class="content-table"> <thead> <tr> <th class="w20p">Input Fields</th> <th class="w40p">Meaning</th> <th class="w40p">Possible Values (Range)</th> </tr> </thead> <tbody> <tr> <td>Mins</td> <td>Minutes of the clock</td> <td>{{%badge%}}0-59{{%/badge%}}</td> </tr> <tr> <td>Hrs</td> <td>Hours or the clock or the time in {{%bold%}}24-Hr{{%/bold%}} format</td> <td>{{%badge%}}0-23{{%/badge%}}</td> </tr> <tr> <td>Day(Month)</td> <td>Days of the calendar month</td> <td>{{%badge%}}1-31{{%/badge%}}</td> </tr> <tr> <td>Month</td> <td>Months present in a calendar year</td> <td>{{%badge%}}1-12{{%/badge%}}</td> </tr> <tr> <td>Day(Week)</td> <td>Days of the week</td> <td>{{%badge%}}0-6 (0/6 can be Sunday){{%/badge%}}</td> </tr> </tbody> </table> #### Special characters present in Cron Expressions <table class="content-table"> <thead> <tr> <th class="w20p">Special Characters</th> <th class="w40p">Meaning</th> <th class="w40p">Example Usage</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}Asterisk (*){{%/badge%}}</td> <td>All values</td> <td>An asterisk under the {{%italics%}}Mins{{%/italics%}} input field would mean "{{%bold%}}Every Minute{{%/bold%}}"</td> </tr> <tr> <td>{{%badge%}}Comma (,){{%/badge%}}</td> <td>Used to denote specific values in a list of values</td> <td>There is a list of seven days in a week. So, if {{%badge%}}1,3,5{{%/badge%}} is inputted in the {{%italics%}}Days(Week){{%/italics%}} input field. The numbers and the comma would mean {{%bold%}}Monday{{%/bold%}}, {{%bold%}}Wednesday{{%/bold%}}, and {{%bold%}}Friday{{%/bold%}}</td> </tr> <tr> <td>{{%badge%}}Hyphen (-){{%/badge%}}</td> <td>Used to denote the entire range of values in a list of values</td> <td>If you input the value {{%badge%}}1-3{{%/badge%}} in the {{%italics%}}Days(Week){{%/italics%}} input field. The expression would mean {{%bold%}}Monday through Wednesday{{%/bold%}}.</td> </tr> <tr> <td>{{%badge%}}Slash (/){{%/badge%}}</td> <td>Used to denote repetitive increments of a value</td> <td>If you input the expression {{%badge%}}0/15{{%/badge%}} in the {{%italics%}}Mins{{%/italics%}} input field. The expression would mean "{{%bold%}}Every 15 Minutes{{%/bold%}}".</td> </tr> <tr> <td>{{%badge%}}Hash (#){{%/badge%}}</td> <td>Used to denote '{{%bold%}}the nth day{{%/bold%}}' of the week in the current month</td> <td>If you input the expression {{%badge%}}6#3{{%/badge%}} in the {{%italics%}}Days (Week){{%/italics%}} input field would mean "{{%bold%}}The 3rd Friday of the current month{{%/bold%}}"</td> </tr> </tbody> </table> #### Some examples of configuring crons using Cron Expressions **Example 1** **Requirement**: Configure a cron to be executed on **8th Day of December** of the **current year** at **11:15 PM**. **Solution**: Since it is a one-time cron, we don't need to use special characters; just the number values would be sufficient. The expression would look like this: <br /> **Example 2** **Requirement**: Configure a recurring cron that should be executed **every 15 minutes** **throughout the year** of **every year**. **Solution**: To achieve this cron, we will use the special character {{%badge%}}slash (/){{%/badge%}} cron expression, with the value **15** in the *Mins* input section. <br /> **Example 3** **Requirement**: Configure a recurring cron that should execute **every minute of 3 PM** on the **6th day of April** if it falls on **Tuesdays**. **Solution**: To achieve this cron, we will use the special character {{%badge%}}Asterisk (*){{%/badge%}} along with the appropriate field values. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} When you configure a cron through code using {{%bold%}}Cron Expressions{{%/bold%}}, we encourage you to use the UI {{%italics%}}Builder{{%/italics%}} present in the console to confirm if your cron expression is correct and per your requirement and then use it in your code.{{%/note%}} ### Schedule Type The schedule type determines the frequency of a cron submitting a job to the job pool. A cron can be scheduled in one of two ways: * **One Time**: The cron schedules the job submission **only once** on the configured date and time. * **Recursive**: The job submission by cron is triggered multiple times recursively based on the frequency, date, and time you configure. This functionality will continue till you disable or delete it, or provide a termination condition. The minimum recurring frequency a cron can be triggered at is **one minute**. -------------------------------------------------------------------------------- title: "Benefits" description: "Cron is a Job Scheduling component that allows you to schedule the creation and submission of a job to a Job Pool at a particular time." last_updated: "2026-03-18T07:41:08.558Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/cron/benefits/" service: "Job Scheduling" related: - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Cron Expressions (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Benefits * **Automate the submission of jobs**<br /> Using Cron, you can automate {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} submission to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}}. No matter how versatile your requirement, you can configure your cron either through code using Catalyst SDKs ({{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}) or using the UI {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}{{%italics%}}Builder{{%/italics%}}{{%/link%}} in the console and the job will be created automatically as per your configurations. Since the cron daemon is constantly running in the background, Catalyst will ensure that the job is created promptly and submitted to the Job Pool without any delay. * **Configure cron during runtime**<br /> Using **Dynamic Crons** you can configure and schedule both one-time and recurring crons dynamically during application runtime. Dynamic crons can be created through code. Catalyst also offers you the required SDK support in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} runtime. Catalyst also offers you {{%link href="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools" %}}REST APIs{{%/link%}} to perform cron operations. Since these crons are generated dynamically during runtime, your crons will be active only when they are required. This further optimizes your application. * **Cron Expressions allow for more flexibility**<br /> Using {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}} allows you schedule crons with greater precision and flexibility. For example, you can configure a cron that will submit jobs to the Job Pool on every third day of the calendar month of a calendar year. You can further drill down and schedule the {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}cron to submit a job{{%/link%}} **every minute** of a particular hour of any day of the calendar month in a calendar year. Achieving this level of versatility is quite simple using Cron Expressions. * **Cron Expressions allow hassle-free migration of crons from other services to Catalyst**<br /> Cron expressions are regex-like standard expressions. Migration of your codebase from one service to another is a cumbersome experience. But when it comes to migration of your cron jobs from other services to Catalyst, you can easily reconfigure them in your codebase itself using Cron expressions. Catalyst also offers you SDKs in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} with the necessary code snippets and functions to configure cron using Cron Expressions. * **Execution History**<br /> Catalyst logs every cron that is executed and makes them immediately available in the *Execution History* section. These logs enable you to assess the performance of your crons, debug errors and perform quick fixes, and make informed decisions based on analytics and reports. The execution history is available for **15 days** in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}Development environment{{%/link%}} and **30 days** in the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}Production environment{{%/link%}}. * **Adept at failure handling**<br /> Sometimes, due to external factors, failures in cron execution can occur. However, with Job Scheduling's Cron, you always have the option to configure a maximum of **10 retry attempts**. You can configure these retries with a minimum interval of **1 minute** to a maximum of **24 hours**. If your cron execution has been canceled due to a loss of network or other such external factors, a retry attempt can solve the issue automatically. Furthermore, if the execution failed even after multiple retries, each of the executions is logged in the *Execution History*, allowing an easier and more informative debugging process. -------------------------------------------------------------------------------- title: "Use Cases" description: "Cron is a Job Scheduling component that allows you to schedule the creation and submission of a job to a Job Pool at a particular time." last_updated: "2026-03-18T07:41:08.558Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/cron/usecases/" service: "Job Scheduling" related: - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Use Cases * **Case 1**<br /><br /> **Business Bottleneck**<br />Consolidating day-to-day accounts operations across multiple branches<br /><br />Global retail outlets, fast food franchises, or any global enterprise that tends to have multiple branches across the globe generally face a common bottleneck to handle day-end closings. They typically invest a great deal in technology to ensure they handle day-to-day closings across branches to gather or pool data for better insights. <br /><br /> **Job Scheduling Solution**<br />In cases like this, a {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types" %}}Pre-defined cron{{%/link%}} configured to trigger a {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} that triggers functions to gather data at a scheduled time and established interval can be a much affordable and precise solution. The circuit can be designed with one function aimed at collecting data, the other function to cleanse the data, and another function to insert the data into the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Catalyst Data Store{{%/link%}}. Since you can configure crons for any time zone, the crons will automatically execute the required jobs promptly. * **Case 2**<br /><br /> **Business Bottleneck**<br />Prompt functioning of any alert-based application, like reminder apps, calendar alerts, or any application that requires a scheduled automated action.<br /><br /> **Job Scheduling Solution**<br />This requirement can be easily solved using Job Scheduling's Pre-Defined and Dynamic {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-types" %}}Cron{{%/link%}}. For example, if you have an application that sends out reminders to take their medication based on their individual schedule, they need only input their desired time. Using the Catalyst SDKs ({{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}) you can schedule a dynamic cron based on this input and trigger reminders based on their selection. * **Case 3**<br /><br /> **Business Bottleneck**<br />Providing the required services while balancing excessive demand.<br /><br />Consider platforms that sell concert or gala tickets. They usually tend to be high-traffic online places, that crash frequently and have a very limited open window.<br /><br /> **Job Scheduling Solution**<br />You can develop a microservice that reminds your end-user at an optimal time of concerts and events based on their interests. {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Using a Pre-defined cron{{%/link%}}, you can keep submitting {{%link href="/en/job-scheduling/help/job/introduction/" %}}jobs{{%/link%}} to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} to trigger the ticketing platform URL periodically and check if an announcement is released. When an end-user's desired announcement is released, you can {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}configure a dynamic cron{{%/link%}} to send out scheduled alerts and ensure that they successfully book their desired tickets at an optimal time. * **Case 4**<br /><br /> **Business Bottleneck**<br />Performing scheduled backups automatically and promptly<br /><br /> For example, in the event where the original data has been accidentally lost or compromised, scheduled backups are crucial in creating required redundancies of data that can be accessed easily.<br /><br /> **Job Scheduling Solution**<br />You can solve this requirement by {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}configuring a cron to submit a job{{%/link%}} to the **Function Job Pool** that will trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} which will contain the required logic to initiate and take automatic backups of your data at the time and intervals you require. This also saves you considerable time and manual effort. * **Case 5**<br /><br /> **Business Bottleneck**<br />Managing an organization's information system processes<br /><br /> **Job Scheduling Solution**<br />Cron can help you efficiently handle a company's information system processes and operations, such as generating and release of payslips, submission of daily operational reports, maintenance of employee attendance records, etc. These operations are crucial for the functioning of any organization and need to be promptly executed. You can configure a cron to submit a job to the {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Circuit Job Pool{{%/link%}} at the scheduled time. The job will promptly trigger a {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} that can handle each of the operations using individual functions. This ensures that these operations are carried out automatically and per schedule without dedicating additional resources. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} ### Dashboard -------------------------------------------------------------------------------- title: "Using the Dashboard" description: "Job Scheduling Dashboard provides you a real-time overview of all the Jobs' statuses and Job Pool performance." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/dashboard/dashboard/" service: "Job Scheduling" related: - Create a Job Pool (/en/job-scheduling/help/implementation/create-jobpool/) - Submit a Job to the Job Pool (/en/job-scheduling/help/implementation/submit-instant-job/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Dashboard The Job Scheduling *Dashboard* can be accessed as a separate component of the Catalyst Job Scheduling service. The dashboard contains the following details: * List of all the top delayed jobs and their details. * A complete summary of the jobs that were executed in a **24-hour** period is illustrated graphically in real-time. * A real-time graph depicting the **Success/Failure** status of the jobs executed in all Job Pools present in the project. You can also filter this graph to illustrate results on individual Job Pool. * An overview of the statuses of each of the Job Pools and information on the memory/units they have utilized. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%italics%}}Dashboard{{%/italics%}} will only be populated after you {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}create a Job Pool{{%/link%}}.{{%/note%}} The dashboard allows you to infer the required details, and highlights the delayed jobs to enable you to take the appropriate actions like increasing the memory allocation for a Job Pool or creating a new Job Pool to {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}reduce dispatch delays{{%/link%}}. You can also perform the following actions: * You can click any of the jobs present in the top delayed jobs section and be directed to the *Overview* section present in the *Jobs* component. <br /> * You can directly access information on all of the Job Pools present in your project from the *Job Pool Summary* section. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} ### Job Pool -------------------------------------------------------------------------------- title: "Introduction" description: "A Job Pool is a collection of a specific set of jobs, that will be executed to trigger specific target types." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/introduction/" service: "Job Scheduling" related: - Create a Job Pool (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Job Pool ### Introduction Job Pool is a component of the Catalyst Job Scheduling service that queues jobs for execution. You can use this component to house and execute jobs. Based on the type of Job Pool, every {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}job that is executed{{%/link%}} will trigger any one of the following target types: * {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}} * Webhooks * {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}} * {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail services{{%/link%}} You can create multiple Job Pools, each with jobs that trigger a particular target type. If you are {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}creating a Functions Job Pool{{%/link%}}, you are required to configure the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}**memory allocation**{{%/link%}} of the Job Pool to ensure smooth execution of the jobs. When you create a Webhook, AppSail, or Circuit Job Pool, you will need to mention the **maximum count** of the target type that will be triggered by the jobs. {{%note%}}{{%bold%}}Note:{{%/bold%}} * For more details on {{%bold%}}memory allocation{{%/bold%}}, visit this {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}help documentation{{%/link%}}. * The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} <br /> A Job can be submitted to the Job Pool in the following means: * Using the Catalyst SDK- {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} * Using {{%link href="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools" %}}Submit Job REST APIs{{%/link%}} * Scheduling the submission using a {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Cron{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Cron{{%/link%}} * Directly from the {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Job Pool section{{%/link%}}. * Using the {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}Jobs component{{%/link%}}. Regardless of the manner used to submit a job to the job pool, the jobs will be automatically queued by Catalyst, and they will be executed from their associated Job Pool. Catalyst provides you with the complete SDK support to employ Job Pool operations through code in the following programming languages: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} ### Architecture of Job Execution in a Job Pool The following diagram illustrates an overview of how jobs are executed in a Job Pool using Job Scheduling: <br /> 1. You can submit a Job directly {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}using the console{{%/link%}}, or through code using Catalyst SDK ({{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/overview/" %}}Python{{%/link%}}). You also have the option to {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}schedule a cron{{%/link%}} to submit a job to the Job Pool. You can have multiple Job Pools, and each of these Job Pools can have multiple jobs. 2. Regardless of whether you submit the Job manually or automate the submission through the use of a cron, the Job Pool will queue and execute them using the *Catalyst Task Engine*. The queuing and the execution process will be completely handled by Catalyst. 3. Based on the target type of the Job Pool, the jobs can trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, a webhook (**any third-party URL**), a {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Circuit{{%/link%}}, or even trigger an {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}AppSail service{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Key Concepts" description: "A Job Pool is a collection of a specific set of jobs, that will be executed to trigger specific target types." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/key-concepts/" service: "Job Scheduling" related: - Create a Job Pool (/en/job-scheduling/help/implementation/create-jobpool/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Key Concepts In this help section, we are going to go over some vital concepts to ensure you utilize Job Pools optimally. ### Job Pool ID Job Pool ID is the unique ID generated by Catalyst when a Job Pool is created. This ID will be used to identify the Job Pool. You can use this ID to refer to a Job Pool while performing actions using the API or SDK. <br /> ### Different States of Job Execution When a job is being executed from the Job Pool, there are four possible states the execution can result in: - **Success**: When the job successfully triggers the configured target type. - **Pending**: When there is a dispatch delay - **Running**: When the job is currently being executed - **Failure**: When the job execution fails due to any of the following reasons: - **Failure**: Typically occurs if you have closed the code file inappropriately. - **Timeout**: Typically occurs if your function exceeds 15 minutes. - **Code_Exception**: Typically occurs if your code is faulty. - **Not_Found**: Typically occurs if you have deleted the target function. - **Unintentional_Termination**: Typically occurs in node runtimes, when you call the {{%badge%}}exit(){{%/badge%}} method or do not close the context of the function. These states will also be displayed in the {{%link href="/en/job-scheduling/help/dashboard/dashboard/" %}}Dashboard{{%/link%}} and can be used to track the status of a job. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also use the {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}} component to configure alerts that notify you via email when a job enters any of the above mentioned states.{{%/note%}} ### Ideal Memory Allocation to Avoid Dispatch Delay This is a feature of Job Scheduling that you have to configure when you {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}create a Job Pool{{%/link%}}. Memory allocation allows you to allocate sufficient memory for your Job Pool to ensure jobs are executed by the Job Pool promptly without any dispatch delay. <br /> Memory allocation is only required for **Function Job Pool**. In a Function Job Pool, the jobs will be executed to trigger a job function. The jobs in the Job Pool and the job function(s) they trigger all occur in the same instance as the Job Pool. If the memory is not allocated properly, this could potentially create a dispatch delay. So ensure you configure memory allocation carefully You need to allocate memory for your Job Pool, considering the memory that triggered function will require to be executed. For a Job Pool to execute a Job successfully and trigger a function, the allocated memory for a Job Pool must be higher than the memory allocated for all the functions being triggered by the jobs associated to that particular Job Pool. The maximum memory allocation possible is **10GB**. With Function Job Pool, you have the flexibility to allocate memory based on your requirement. For example, you can either have 10 Job Pools each of 1GB, or one Job Pool with a memory of 10GB. Imagine this hypothetical, where you have an ecommerce platform, where you provide services based on a subscription pricing model. You have two minimum requirements that you can fulfill with Job Scheduling. One is to trigger a function that requires 3GB memory to deliver prompt reminders to renew subscription, and the other job triggers a function that requires 2GB to deliver emails containing offers and latest product details to the end-user. Both these functions can be triggered using a singular Functions Job Pool of 10GB. However, this is not an efficient way to use Job Pools, as there is a possibility of dispatch delay when demand rises to create and execute several jobs to trigger the functions. An illustration of this type of workflow is shown below: <br /> The efficient manner to ensure you are never in such a situation is to use two different function Job Pools. One of them can be a priority Job Pool that will always have the memory allocation to execute priority jobs such as sending out payment reminders. The other Job Pool can execute jobs of flexible priority where dispatch delays, should they occur, do not have drastic consequences to the rest of the workflow. An illustration of the ideal workflow to ensure all your jobs are executed promptly avoiding any dispatch delay is shown below. <br /> The key point to comprehend is that the ideal manner to employ Job Pools is where your **Job Pools always have higher memory allocation than the job functions** the jobs are triggering. {{%note%}}{{%bold%}}Note:{{%/bold%}} * The default maximum memory allocation permitted for a Job Pool in a single Catalyst project is {{%bold%}}10GB{{%/bold%}}. You can always {{%link href="/en/job-scheduling/help/implementation/manage-jobpool/#edit-a-job-pool" %}} edit a Job Pool's {{%/link%}} memory allocation, to accommodate sudden rise in demands. But, the ideal manner will always be employing enough Job Pools with proper memory allocation. * While there is no memory allocation required for the other types of Job Pool, you do have to configure the maximum count of the services that can be triggered by the jobs in the job pool. The max count of AppSail services, circuits or, third-party URLs that can be triggered {{%bold%}}in parallel{{%/bold%}} in a single Job Pool is {{%bold%}}10{{%/bold%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Benefits" description: "A Job Pool is a collection of a specific set of jobs, that will be executed to trigger specific target types." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/benefits/" service: "Job Scheduling" related: - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Benefits * **You can prioritize your jobs using multiple Job Pools**<br /> If you have too many jobs queued in a job pool, instead of executing them in just one Job Pool, you can create a priority Job Pool along with a regular Job Pool. This would ensure that your tasks that need to be executed instantly with no dispatch delay are executed promptly. * **Job Pools significantly reduce delays in executions**<br /> Each Job Pool is created and configured with a particular {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}memory allocation{{%/link%}}. You also have the option to {{%link href="/en/job-scheduling/help/implementation/manage-jobpool/#edit-a-job-pool" %}}edit this memory allocation{{%/link%}} and expand or decrease the allocation based on your scaling requirements. This particular feature ensures that jobs, whether {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}created manually{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}scheduled by a cron{{%/link%}}, are created and executed as precisely as possible. * **You can create different Job Pools for different target types**<br /> Each Job Pool is created and configured to hold a collection of {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}jobs to trigger{{%/link%}} a particular target type: third-party URLs, job functions, circuits, and AppSail services. Based on your requirement, you can also have different Job Pools to trigger the same target types. * **Job Pools can queue and execute jobs automatically**<br /> You are only required to submit jobs directly to the Job Pool or schedule their submission using crons. The queuing and execution of them is completely handled by Catalyst in the backend. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Use Cases" description: "A Job Pool is a collection of a specific set of jobs, that will be executed to trigger specific target types." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/usecases/" service: "Job Scheduling" related: - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Working With Job Scheduling (/en/job-scheduling/help/implementation/create-jobpool/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Use Cases * **Case 1**<br /><br /> **Business Bottleneck**<br />Ensuring priority email notifications are sent promptly to the required consumers.<br /><br />Imagine you have an application where you provide your users with a subscription-based service. You need to remind your users to renew their subscription on time to ensure you are promptly paid for services rendered and they continue to enjoy their service uninterrupted. Additionally, you will also need to keep your users well-informed on the latest offers and promotions.<br /><br /> **Job Scheduling Solution**<br />The required actions can be handled easily by scheduling a {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}} to {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}submit a job to the Job Pool{{%/link%}} that triggers a circuit. The circuit will ultimately send an email to your user. On the surface, the tasks are basic actions of email prompts targeted at your users. However, reminding them about their payment is a task of a higher priority, and cannot encounter any delays.<br /><br >Without a Job Pool, both of these tasks will be given equal priority. When dealing with a large volume of jobs, this might give rise to a {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}possible dispatch delay{{%/link%}} in executing the job responsible for reminding your users about their payment. With the advantage of creating multiple Job Pools, you can have a Job Pool that exclusively queues and executes jobs that trigger circuits that send out payment reminders, and another Job Pool that executes lesser priority jobs. {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} * **Case 2**<br /><br /> **Business Bottleneck**<br />Handling multiple time-sensitive actions.<br /><br />For example, if you are creating an ecommerce application, you need to constantly notify and inform your consumers about your inventory and remind them that their favorite items are in stock, send them consumerization emails, and so on.<br /><br />Conventionally, you could create independent microservices, and manually execute them, or even perform limited automation to execute these tasks.<br /><br /> **Job Scheduling Solution**<br />With Job Scheduling's Job Pools, you can configure three different Job Pools. Catalyst will automatically queue and execute jobs you configure to trigger different Circuits, each configured to execute a specific workflow. Additionally, you can also configure a recurring Pre-defined or Dynamic cron to submit jobs at scheduled times and intervals to execute each of these tasks. ### Jobs -------------------------------------------------------------------------------- title: "Introduction" description: "Jobs are the actions executed from a Job Pool that you configure to trigger and invoke multiple target types" last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/job/introduction/" service: "Job Scheduling" related: - Submit a Job (/en/job-scheduling/help/implementation/submit-jobs-using-jobs/) - Circuit Help Documentation (/en/serverless/help/circuits/introduction/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Job Functions Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Jobs ### Introduction Jobs are the actions executed from a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}} that you configure to trigger and invoke any of the following target types: * {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}} * Webhooks(**any third-party URL**) * {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}} * {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail services{{%/link%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} These are also the four types of jobs, each associated based on the Job Pool they are a part of and the target type they are configured to trigger and invoke. <br /> You can create jobs and associate them to their respective Job Pools using the Jobs component. You can either {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}create them immediately (manually){{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}schedule their submission{{%/link%}} using Cron. You can create them using the UI *Builder* present in the console, or create them through your code using Catalyst SDKs. There are individual SDKs for each type of Job and these SDKs are available in: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} There are no restrictions on the number of jobs that can be created in a Job Pool, and they can also be {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}scheduled using a cron{{%/link%}} to be submitted within **one minute** of each other. Multiple jobs are queued and executed in parallel, and the queue is handled by Catalyst. Each job is created with a unique {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}Job ID{{%/link%}} generated by Catalyst, and their progress, execution status, and their details can be viewed from the {{%link href="/en/job-scheduling/help/dashboard/dashboard/" %}}Job Scheduling Dashboard{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You need to {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}create a Job Pool{{%/link%}} before you create a Job.{{%/note%}} -------------------------------------------------------------------------------- title: "Key Concepts" description: "Jobs are the actions executed from a Job Pool that you configure to trigger and invoke multiple target types" last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/job/key-concepts/" service: "Job Scheduling" related: - Create a Job (/en/job-scheduling/help/implementation/submit-jobs-using-jobs/) - Submit an Instant Job (/en/job-scheduling/help/implementation/submit-instant-job/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Key Concepts In this help section, we are going to go over some of the concepts you need to understand to create jobs without errors. The following fields are required when you create a job for any job pool type: ### Request Methods The following HTTP request methods are supported while invoking a Webhook, or AppSail service through Job execution: * {{%badge%}}**POST**{{%/badge%}}: Creates a new resource in the target URL * {{%badge%}}**GET**{{%/badge%}}: Retrieves data from the target URL * {{%badge%}}**PUT**{{%/badge%}}: Replaces an existing resource in the target URL * {{%badge%}}**DELETE**{{%/badge%}}: Deletes an existing resource in the target URL ### Headers This is an optional input in {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}AppSail and Webhook Job Pool{{%/link%}} that you can provide based on your requirement. When the HTTP request is sent to the target URL, the requesting entity sends default headers in the request to provide information about the request. Some examples of default headers include the origin of the request, the connection type, and the content type. In addition to the default headers, you can also define custom headers in the HTTP request. For example, you can include a header that specifies the **authorization type** used, a list of acceptable encoding, or the origin date of the request. ### URL Parameters This is an optional input in a Function, AppSail, and Webhook Job Pool that you can provide based on your requirement. You can pass custom URL parameters in the user-defined format with the HTTP request, whose values are set dynamically when the third-party URL is invoked. You can customize the parameter value and include any terms that you require to be passed in the parameter. ### Job ID This is a unique ID generated by Catalyst when you create a Job. You can use this ID to refer to the job in your application code or while performing search operations in the console. You can use this ID to refer to the job in your application code or while viewing its {{%link href="/en/devops/help/logs/application-logs/" %}}Execution logs{{%/link%}}. -------------------------------------------------------------------------------- title: "Benefits" description: "Jobs are the actions executed from a Job Pool that you configure to trigger and invoke multiple target types" last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/job/benefits/" service: "Job Scheduling" related: - Create a Job (/en/job-scheduling/help/implementation/submit-jobs-using-jobs/) - Submit an Instant Job (/en/job-scheduling/help/implementation/submit-instant-job/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Benefits * **Trigger multiple Catalyst components, and invoke third-party URLs**<br /> You can {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}submit a Job to the Job Pool{{%/link%}} to trigger Catalyst components like {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} services. You can also trigger third-party URLs using any request method. As these jobs are being executed in their individual Job Pools, they can all be executed together in parallel. This is true for {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Function Job Pool{{%/link%}}, provided the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}memory allocation{{%/link%}} is configured accordingly. * **Multiple ways to create and submit jobs**<br /> You can create a job and submit a job to its Job Pool by using the *Builder* in the console. The *Builder* feature is available in the *Job Pool* and *Jobs* component. You can also submit an immediate job using the **Submit Job** button present in the *Cron* component. You can also submit a job through code using the {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} or {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} Catalyst SDKs, and using the {{%link href="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools" %}}REST API{{%/link%}}. * **There are no restrictions on the number of jobs being submitted**<br /> You have no restriction on the number of jobs you can submit to a Job Pool, and you have no restriction on how quickly the jobs can be submitted. You can schedule a {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}} can submit a job to the job pool in **one minute** intervals. * **Adept at failure handling**<br /> Every job created and submitted to the Job Pool will be executed. However, if a job is not being executed due to external factors, you can automate further attempts to resubmit the job to the Job Pool using the {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}Retries{{%/link%}} option while you configure a job. ### Working With Job Scheduling -------------------------------------------------------------------------------- title: "Create a Job Pool" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/create-jobpool/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Setting Application Alerts in a Job Pool (/en/job-scheduling/help/implementation/create-app-alert/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Circuits Help Documentation (/en/serverless/help/circuits/introduction/) - Job Function Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Create a Job Pool To create a Job Pool: 1. Access the **Catalyst Job Scheduling** service from the service menu and click Start Exploring. <br /> 2. Click the **Job Pool** component under *JOB SOURCE* to access the **Job Pool**. Click the **Create Job Pool** button. <br /> 3. Provide a name for your *Job Pool* and choose your required Job Pool type from the drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Once you choose a type of Job Pool, it cannot be edited or changed. It is strongly advised you choose the requirede Job Pool type after careful consideration.{{%/note%}} Follow along with the rest of the implementation steps according to your Job Pool type selection. {{%tabs%}} {{%tab "Function Job Pool" %}} ### Create a Function Job Pool 4. Select an appropriate memory allocation from the **Memory Allocation** drop-down, and Click **Create**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Ensure you provide a memory allocation greater than the memory allocated for your {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}. You can find out the best approach to deciding your Job Pool's memory allocation from this {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}section{{%/link%}}.{{%/note%}} Your Job Pool will be created, and you will be directed to the *Overview* section of the job pool. <br /> In the *Overview* section, you will be able to view: * General details about the Job Pool; *Name*, *ID*, *Type*, when and by whom the Job Pool had been created. * The *Execution Stats* (Count of **Pending**, **In Progress**, **Successful**, and **Failed** Jobs)of the jobs being executed in the job pool. * The memory usage of the job pool. All of these stats and values are provided to ensure you are aware of each of your jobs' performance in the job pool and to provide you with insights on possible optimization. You can also view all time stats or stats for a particular time period by accessing the drop-down filter in the right. <br /> {{%/tab%}} {{%tab "Webhook Job Pool" %}} ### Create a Webhook Job Pool 4. Select the count of the number of times you intend to trigger the required webhook (any third-party URL) in parallel from the **Allocate Max Count** drop-down. <br /> 5. Click **Create**. <br /> Your Job Pool will be created, and you will be directed to the *Overview* section of the job pool. <br /> In the *Overview* section, you will be able to view: * General details about the Job Pool; *Name*, *ID*, *Type*, when and by whom the Job Pool had been created. * The *Execution Stats* (Count of **Pending**, **In Progress**, **Successful**, and **Failed** Jobs)of the jobs being executed in the job pool. * The memory usage of the job pool. All of these stats and values are provided to ensure you are aware of each of your jobs' performance in the job pool and to provide you with insights on possible optimization. You can also view all time stats or stats for a particular time period by accessing the drop-down filter in the right. <br /> {{%/tab%}} {{%tab "Circuit Job Pool" %}} ### Create a Circuit Job Pool {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} 4. Select the count of {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}} you wish to trigger in parallel from the **Allocate Max Count** drop-down. <br /> 5. Click **Create**. <br /> Your Job Pool will be created, and you will be directed to the *Overview* section of the job pool. <br /> In the *Overview* section, you will be able to view: * General details about the Job Pool; *Name*, *ID*, *Type*, when and by whom the Job Pool had been created. * The *Execution Stats* (Count of **Pending**, **In Progress**, **Successful**, and **Failed** Jobs)of the jobs being executed in the job pool. * The memory usage of the job pool. All of these stats and values are provided to ensure you are aware of each of your jobs' performance in the job pool and to provide you with insights on possible optimization. You can also view all time stats or stats for a particular time period by accessing the drop-down filter in the right. <br /> {{%/tab%}} {{%tab "AppSail Job Pool" %}} ### Create a AppSail Job Pool 4. Select the count of {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail services{{%/link%}} you wish to trigger in parallel from the **Allocate Max Count** drop-down. <br /> 5. Click **Create**. <br /> Your Job Pool will be created, and you will be directed to the *Overview* section of the job pool. <br /> In the *Overview* section, you will be able to view: * General details about the Job Pool; *Name*, *ID*, *Type*, when and by whom the Job Pool had been created. * The *Execution Stats* (Count of **Pending**, **In Progress**, **Successful**, and **Failed** Jobs)of the jobs being executed in the job pool. * The memory usage of the job pool. All of these stats and values are provided to ensure you are aware of each of your jobs' performance in the job pool and to provide you with insights on possible optimization. You can also view all time stats or stats for a particular time period by accessing the drop-down filter in the right. <br /> {{%/tab%}} {{%/tabs%}} You can find further steps on **submitting an instant job using the Job Pools component** {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}here{{%/link%}}, and steps on **configuring {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}} in the Job Pool** {{%link href="/en/job-scheduling/help/implementation/create-app-alert/" %}}here{{%/link%}}. You can also find the steps required to **edit your Job Pool** {{%link href="/en/job-scheduling/help/implementation/manage-jobpool/" %}}here{{%/link%}}. <br /> -------------------------------------------------------------------------------- title: "Submit an Instant Job to the Job Pool" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-instant-job/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Setting Application Alerts in a Job Pool (/en/job-scheduling/help/implementation/create-app-alert/) - AppSail Help Documentation (/en/serverless/help/appsail/introduction/) - Circuits Help Documentation (/en/serverless/help/circuits/introduction/) - Job Function Help Documentation (/en/serverless/help/functions/job-functions/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Submit an Instant Job to the Job Pool You can submit an instant job to the Job Pool from two sections in the console: * From the Job Pool component {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}section{{%/link%}} * From the Jobs component {{%link href="/en/job-scheduling/help/job/introduction/" %}}section{{%/link%}} In this help documentation, we are going to go over the steps required to submit an instant job using the *Job Pool* component section. For steps on submitting a job to the job pool using the *Jobs* component section, visit this {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}help documentation{{%/link%}}. To submit a job to the job pool: {{%tabs%}} {{%tab "Submit a Function Job" %}} ### Submit an Instant Job to the Function Job Pool 1. Choose the required job pool from the **Job Pool** section. <br /> 2. Click the **Jobs** tab. <br /> 3. Click **Create Job**. <br /> 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. The SDK snippets can also be copied from the console. {{%tabs%}} {{%tab "Using the Builder" %}} 5. Provide a name for your job in the **Job Name** input field. <br /> 6. Select the required {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} you wish to trigger from the **Target Function** drop-down. <br /> - If you have not created a Job Function, click **Create New**. <br /> You will be directed to the {{%link href="/en/serverless/" %}}*Catalyst Serverless*{{%/link%}} service to create your *Job Function*. Steps to create Job Functions using this section are available in this {{%link href="/en/serverless/help/functions/implementation/#create-a-function" %}}help section{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} If you have {{%link href="/en/cli/v1/initialize-resources/initialize-functions/" %}}initialized a Job Function{{%/link%}} from the CLI, ensure you {{%link href="/en/cli/v1/deploy-resources/deploy-options/#--only-lttargetsgt" %}}deploy{{%/link%}} it to the Catalyst console for the function to be listed in the drop-down.{{%/note%}} - Once you create your Job Function, navigate back to the *Job Scheduling* service and select it from the drop-down. <br /> 7. You can also enable the toggle present in the pop up to pass **Query Parameters** to your *Job Function* when the job triggers the function. <br /> {{%note%}}{{%bold%}}Note: Query Parameters{{%/bold%}} are custom parameters that you can pass to your {{%italics%}}Job Function{{%/italics%}}. They are passed in a {{%bold%}}user-defined format{{%/bold%}}, and you customize the parameter value and include any terms that you require to be passed in the parameter.{{%/note%}} 8. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. <br /> 9. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/link%}} 10. Click **Create** <br /> Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. <br /> The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in {{%link href="/en/devops/help/logs/introduction/" %}}DevOps's Logs{{%/link%}} component by clicking the **View Logs** button. {{%/tab%}} {{%tab "Using Catalyst SDK" %}} 5. Click the **SDK** tab. <br /> Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Java SDK to Submit a Function Job" footer="button" scroll="set-scroll" %}}// FUNCTION JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the function job pool named test // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // submit function job ZCJobDetails functionJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Node.js SDK to Submit a Function Job" footer="button" scroll="set-scroll" %}}// FUNCTION JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the function job pool named test // create function job const functionJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Python SDK to Submit a Function Job" footer="button" scroll="set-scroll" %}}# FUNCTION JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the function jobpool named test # create function job function_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set params to be passed to target function (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} These SDKs will also be available in these sections: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Submit a Webhook Job" %}} ### Submit an Instant Job to the Webhook Job Pool 1. Choose the required job pool from the **Job Pool** section. <br /> 2. Click the **Jobs** tab. <br /> 3. Click **Create Job**. <br /> 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. The SDK snippets can also be copied from the console. {{%tabs%}} {{%tab "Using the Builder" %}} 5. Provide a name for your job in the **Job Name** input field. <br /> 6. Enter the complete URL of the webhook you wish to trigger in the input field and select the **Request Method** from the drop-down. <br /> The URL input field and the **Preview URL** will be populated automatically once you input the URL. {{%note%}}{{%bold%}}Note:{{%/bold%}} * It is vital you enter the complete URL of the webhook you are required to trigger. * You can trigger any third-party URL using this job pool.{{%/note%}} 7. You can provide **Headers & Value** in a key-value pair format. You can also provide **Params** in a key-value pair format by enabling the **Query Parameters** toggle. <br /> You can verify your *Query Params*, as the **Preview URL** section gets populated automatically when you input them. {{%note%}}{{%bold%}}Note: Query Parameters{{%/bold%}} are custom parameters that you can pass to your {{%italics%}}Job Function{{%/italics%}}. They are passed in a {{%bold%}}user-defined format{{%/bold%}}, and you customize the parameter value and include any terms that you require to be passed in the parameter.{{%/note%}} 8. You can provide the required data as a JSON key-value pair in the **Request Body** section. <br /> 9. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/link%}} 10. Click **Create**, after confirming your configurations. <br /> Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. <br /> The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in {{%link href="/en/devops/help/logs/introduction/" %}}DevOps's Logs{{%/link%}} component by clicking the **View Logs** button. {{%/tab%}} {{%tab "Using Catalyst SDK" %}} 5. Click the **SDK** tab. <br /> Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Java SDK to Submit a Webhook Job" footer="button" scroll="set-scroll" %}}// WEB HOOK JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the webhook job pool named test // generate webhook job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.webhookJobBuilder() // create webhook job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setRequestMethod("POST") // set webhook request's method .setUrl("https://catalyst.zoho.com") // set webhook request's url .setParams(new JSONObject() { { put("arg1", "test"); put("arg2", "job"); } }) // set the webhook request's query params (optional) .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the webhook request's headers (optional) .setRequestBody("test_request") // set the webhook request's body (optional) .setJobName("test_job") // set job name .build(); // build webhook job meta // submit webhook job ZCJobDetails webHookJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Node.js SDK to Submit a Webhook Job" footer="button" scroll="set-scroll" %}}// WEBHOOK JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the webhook job pool named test // create webhook job const webhookJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Webhook', // set the target type as Webhook for webhook jobs request_method: 'POST', // set the webhook request's method url: 'https://catalyst.zoho.com', // set the webhook request's url params: { arg1: 'test', arg2: 'job' }, // set the webhook request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the webhook request's headers (optional) request_body: 'test_request', // set the webhook request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Python SDK to Submit a Webhook Job" footer="button" scroll="set-scroll" %}}# WEBHOOK JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the webhook jobpool named test # create webhook job webhook_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Webhook', # set the target type as Webhook for webhook jobs 'request_method': 'POST', # set the webhook request's method 'url': 'https://catalyst.zoho.com', # set the webhook request's url 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the webhook request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the webhook request's headers (optional) 'request_body': 'test_request', # set the webhook request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} These SDKs will also be available in these sections: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Submit a Circuit Job" %}} ### Submit an Instant Job to the Circuit Job Pool {{%note%}}{{%bold%}}Note:{{%/bold%}} The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} 1. Choose the required job pool from the **Job Pool** section. <br /> 2. Click the **Jobs** tab. <br /> 3. Click **Create Job**. <br /> 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. The SDK snippets can also be copied from the console. {{%tabs%}} {{%tab "Using the Builder" %}} 5. Provide a name for your job in the **Job Name** input field. <br /> 6. Choose your required Circuit from the **Target Circuit** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} * It is vital you create the required circuit, and {{%link href="/en/cli/v1/deploy-resources/deploy-options/#--only-lttargetsgt" %}}deploy all the functions{{%/link%}} required by the circuit to the console. The circuit needs to be ready and functioning, to ensure that when the job is executed in the job pool it triggers the circuit, and the required workflow is executed. * If you have not created a circuit yet, click the **Create New** option in the drop-down. You will be directed to the {{%link href="/en/serverless/" %}}Catalyst Serverless{{%/link%}} console, where you can engineer a new circuit. * You can find the steps to create a **Catalyst Circuit** from this {{%link href="/en/serverless/help/circuits/implementation/#create-a-circuit" %}}help documentation{{%/link%}}.{{%/note%}} 7. Enter the **JSON Input** for the Circuit. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can learn more about providing {{%bold%}}JSON Inputs to a Circuit{{%/bold%}} from this {{%link href="/en/serverless/help/circuits/implementation/#execute-a-circuit" %}}help documentation{{%/link%}}.{{%/note%}} 8. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. <br /> 9. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/note%}} 10. Click **Create** <br /> Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. <br /> The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in {{%link href="/en/devops/help/logs/introduction/" %}}DevOps's Logs{{%/link%}} component by clicking the **View Logs** button. {{%/tab%}} {{%tab "Using Catalyst SDK" %}} 5. Click the **SDK** tab. <br /> Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Java SDK to Submit a Circuit Job" footer="button" scroll="set-scroll" %}}// CIRCUIT JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the circuit job pool named test // generate circuit job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.circuitJobBuilder() // create circuit job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_circuit") // set target circuits's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target circuits's Id (optional) (either TargetName or TargetId is mandatory) .setCircuitInput(new JSONObject() { { put("key1", "value1"); put("key2", "value2"); } }) // set the test cases for the circuit .setJobName("test_job") // set job name .build(); // build circuit job meta // submit circuit job ZCJobDetails circuitJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Node.js SDK to Submit a Circuit Job" footer="button" scroll="set-scroll" %}}// CIRCUIT JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the circuit job pool named test // create circuit job const circuitJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Circuit', // set the target type as Circuit for circuit jobs target_name: 'target_circuit', // set the target circuit's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target circuit's Id (optional) (either target_id or target_name is mandatory) test_cases: { arg1: "job", arg2: "test" }, // set the circuit test cases job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Python SDK to Submit a Circuit Job" footer="button" scroll="set-scroll" %}}# CIRCUIT JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the circuit jobpool named test # create circuit job circuit_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Circuit', # set the target type as Circuit for circuit jobs 'target_name': 'target_circuit', # set the target circuit's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target circuit's Id (optional) (either target_id or target_name is mandatory) 'test_cases': { 'arg1': 'job', 'arg2': 'test' }, # set the circuit test cases 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} These SDKs will also be available in these sections: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Submit an AppSail Job" %}} ### Submit an Instant Job to the AppSail Job Pool 1. Choose the required job pool from the **Job Pool** section. <br /> 2. Click the **Jobs** tab. <br /> 3. Click **Create Job**. <br /> 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}}. The SDK snippets can also be copied from the console. {{%tabs%}} {{%tab "Using the Builder" %}} 5. Provide a name for your job in the **Job Name** input field. <br /> 6. Select the *AppSail* service you wish to trigger from the **Target AppSail** drop-down.. <br /> The URL input field and the **Preview URL** will be populated automatically once you select your *AppSail* service. {{%note%}}{{%bold%}}Note:{{%/bold%}} * It is vital you create and deploy the required AppSail service to the Catalyst console, to ensure it is available in the drop-down when you create a job to trigger the service. * If you have not deployed an AppSail service yet, click the **Create New** option in the drop-down. You will be directed to the {{%link href="/en/serverless/" %}}Catalyst Serverless{{%/link%}} console, where you can begin steps to create and deploy your AppSail service. * You can find the help documentation for {{%bold%}}Catalyst AppSail{{%/bold%}} {{%link href="/en/serverless/help/appsail/introduction/" %}}here{{%/link%}}.{{%/note%}} 7. Select your required **Request Method** from the drop-down.. <br /> 8. You can provide **Headers & Value** in a key-value pair format. <br /> You can also provide **Params** in a key-value pair format by enabling the **Query Parameters** toggle. <br /> You can verify your *Query Params*, as the **Preview URL** section gets populated automatically when you input them. {{%note%}}{{%bold%}}Note: Query Parameters{{%/bold%}} are custom parameters that you can pass to your {{%italics%}}Job Function{{%/italics%}}. They are passed in a {{%bold%}}user-defined format{{%/bold%}}, and you customize the parameter value and include any terms that you require to be passed in the parameter.{{%/note%}} 9. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/link%}} 10. Click **Create**, after confirming your configurations. <br /> Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. <br /> The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in {{%link href="/en/devops/help/logs/introduction/" %}}DevOps's Logs{{%/link%}} component by clicking the **View Logs** button. {{%/tab%}} {{%tab "Using Catalyst SDK" %}} 5. Click the **SDK** tab. <br /> Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Java SDK to Submit an AppSail Job" footer="button" scroll="set-scroll" %}}// APPSAIL JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the appsail job pool named test // generate appsail job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.appSailJobBuilder() // create appsail job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("test_appsail") // set appsail name .setRequestMethod("POST") // set appsail request method .setUrl("/test") // set appsail request url .setParams(new JSONObject() { { put("arg1", "value1"); put("arg2", "value2"); } }) // set appsail request query params .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the appsail request's headers (optional) .setRequestBody("test_request") // set the appsail request's body (optional) .setJobName("test_job") // set job name .build(); // build appsail job meta // submit appsail job ZCJobDetails appSailJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Node.js SDK to Submit an AppSail Job" footer="button" scroll="set-scroll" %}}// APPSAIL JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the appsail job pool named test // create appsail job const appsailJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'AppSail', // set the target type as AppSail for appsail jobs target_name: 'target_appsail', // set the target appsail's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target appsail's Id (optional) (either target_id or target_name is mandatory) request_method: 'POST', // set the appsail request's method url: '/test', // set the appsail's url path (optional) params: { arg1: 'test', arg2: 'job' }, // set the appsail request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the appsail request's headers (optional) request_body: 'test_request', // set the appsail request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Python SDK to Submit an AppSail Job" footer="button" scroll="set-scroll" %}}# APPSAIL JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the appsail jobpool named test # create appsail job appsail_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'AppSail', # set the target type as AppSail for appsail jobs 'target_name': 'target_appsail', # set the target appsail's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target appsail's Id (optional) (either target_id or target_name is mandatory) 'request_method': 'POST', # set the appsail request's method 'url': '/test', # set the appsail's url path (optional) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the appsail request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the appsail request's headers (optional) 'request_body': 'test_request', # set the appsail request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} These SDKs will also be available in these sections: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}} 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%/tabs%}} You can view the performance and status of your job in the following sections: {{%note%}}{{%bold%}}Note:{{%/bold%}} The following performance and status views are illustrated with a {{%italics%}}Webhook Job Pool{{%/italics%}}. The views will be similar for all the other types of job pools.{{%/note%}} * The {{%link href="/en/job-scheduling/help/dashboard/dashboard/" %}}Dashboard{{%/link%}} <br /> * The {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}} *Overview* section <br /> * The **Jobs** tab in the *Job Pool* section <br /> * The {{%link href="/en/job-scheduling/help/job/introduction/" %}}Jobs{{%/link%}} component section <br /> You can submit the next job to the job pool in this section by clicking the **Create Job** button and following the steps mentioned above. -------------------------------------------------------------------------------- title: "Create Application Alerts for a Job Pool" description: "Learn about working with started with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/create-app-alert/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Application Alerts Help Documentation (/en/devops/help/application-alerts/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Create Application Alerts for a Job Pool You can configure application alerts for the events where your jobs executed in the *Function* Job Pool may encounter a **failure**, **code exception**, or **time out**, and the jobs executed in {{%link href="/en/serverless/help/appsail/introduction/" %}}*AppSail*{{%/link%}}, *Webhook*, or {{%link href="/en/serverless/help/circuits/introduction/" %}}*Circuit*{{%/link%}} Job Pool may encounter a **3xxx**, **4xx**, or **5xx** execution error. You can also configure alerts in failure instances caused due to **Exception** and **Unintentional Termination**. With the *Job Scheduling* service, you can configure email alerts for any of the above mentioned instances from the **Job Pool** console without having to navigate to the {{%link href="/en/devops/help/application-alerts/introduction/" %}}Application Alerts{{%/link%}} component. 1. Click **+ Create Alert**. <br /> 2. Provide a name for your alert in the **Alert Name** input field. Click the **Add New** option if you have not configured any previous alerts. <br /> 3. Choose the failure condition series that you require the alert to notify you about from the Failure Condition(s) drop-down. <br /> {{%tabs%}} {{%tab "Alerts for a Function Job Pool" %}} 4. Choose the failure condition series that you require the alert to notify you about from the **Failure Condition(s)** drop-down. <br /> 5. Select your **Criteria** from the drop-down, and input your threshold value in the **Threshold** input field. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%bold%}}Threshold{{%/bold%}} value indicates the number of failure occurrences that need to occur before you are notified. You can configure the threshold value based on the number of {{%bold%}}retry attempts{{%/bold%}} you had configured during {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}job creation{{%/link%}}.{{%/note%}} 6. Select an appropriate frequency in which you wish to be alerted from the **Alert Frequency** drop-down. <br /> 7. Provide the email addresses you wish to be alerted in the *Notify Email* input field, and click **ADD** if you have not configured alerts for any previous emails. <br /> The alert has been created for this job pool. <br /> {{%/tab%}} {{%tab "Alerts for a Circuit, AppSail, and Webhook Job Pool" %}} {{%note%}}{{%bold%}}Note:{{%/bold%}} * The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service. * The implementation steps discussed in this section are the same for AppSail, Circuit and Webhook job pools{{%/note%}} 4. Choose the failure condition series that you require the alert to notify you about from the **Failure Condition(s)** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} * {{%badge%}}3xx{{%/badge%}}: Represents Redirection errors * {{%badge%}}4xx{{%/badge%}}: Represents Client errors * {{%badge%}}5xx{{%/badge%}}: Represents Server errors{{%/note%}} 5. Select your **Criteria** from the drop-down, and input your threshold value in the **Threshold** input field. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%bold%}}Threshold{{%/bold%}} value indicates the number of failure occurrences that need to occur before you are notified. You can configure the threshold value based on the number of {{%bold%}}retry attempts{{%/bold%}} you had configured during {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}job creation{{%/link%}}.{{%/note%}} 6. Select an appropriate frequency in which you wish to be alerted from the **Alert Frequency** drop-down. <br /> 7. Provide the email addresses you wish to be alerted in the *Notify Email* input field, and click **ADD** if you have not configured alerts for any previous emails. <br /> The alert has been created for this job pool. <br /> {{%/tab%}} {{%/tabs%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} An alert once created will be stored with the {{%italics%}}Application Alerts{{%/italics%}} component. This allows you to reuse the alert for other Job Pools of the same type, by selecting the alert from the {{%bold%}}Alert Name{{%/bold%}} drop-down. {{%/note%}} ### Remove Application Alerts in a Job Pool To remove the enabled alert: 1. Click the ellipsis icon next to the configured alert and click **Remove**. <br /> 2. Confirm the choice by clicking **Remove**. <br /> The alert will be removed. {{%note%}}{{%bold%}}Note:{{%/bold%}} The alert will only be disabled and removed from that particular job pool. It will not be deleted from the {{%italics%}}Application Alerts{{%/italics%}} component. You can always enable this alert again by choosing it from the {{%bold%}}Alert Name{{%/bold%}} drop-down, when you create a new alert.{{%/note%}} -------------------------------------------------------------------------------- title: "Manage a Job Pool" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/manage-jobpool/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Setting Application Alerts in a Job Pool (/en/job-scheduling/help/implementation/create-app-alert/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Manage a Job Pool You can perform edit and delete operations in a job pool. {{%note%}}{{%bold%}}Note:{{%/bold%}} * The steps for edit and delete operations are illustrated using a Function Job Pool. The edit and delete operations for {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}}, Webhook, and Circuit Job Pools are near identical, and need to be employed in very much the same manner. * The {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}} component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service.{{%/note%}} ### Edit a Job Pool You can edit only the following configurations of the Job Pool: * **Job Pool Name** * **Memory Allocation/Count** You **cannot edit** the **Job Pool Type**. To edit a job pool: 1. Navigate to the *Job Pool* section, then click the ellipsis icon in the Job Pool tile you wish to edit. Click **Edit**. <br /> 2. Perform the required edits and click **Update**. <br /> The job pool will be updated. ### Delete a Job Pool To delete a job pool: 1. Navigate to the *Job Pool* section, click the ellipsis icon present in the Job Pool tile you wish to delete, and click **Delete**. <br /> 2. Confirm your choice by clicking **Delete** in the prompt. <br /> The job pool will be deleted. The edit and delete operations can also be performed by clicking the ellipsis icon present in the *Overview* section of the required job pool. <br /> -------------------------------------------------------------------------------- title: "Delete a Job in Job Pool" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/delete-job-in-jobpool/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Avoid Dispatch Delays When Executing Jobs (/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay) - Submit a Job to the Job Pool (/en/job-scheduling/help/implementation/submit-instant-job/) - Create a Job (/en/job-scheduling/help/implementation/submit-jobs-using-jobs/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Delete a Job in Job Pool To delete a {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}job{{%/link%}} in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}}: 1. Click on the required job, and you will be directed to its *Job Definition* page. Click the **ellipsis icon** and click **Delete**. <br /> 2. Confirm your choice by clicking **Delete** in the prompt <br /> The job will be deleted. Alternatively, you can delete them by clicking the **ellipsis icon** present next to each job in the *Jobs* list. <br /> Follow the steps mentioned above, and the job will be deleted from the job pool. -------------------------------------------------------------------------------- title: "Submit a Job to the Job Pool Using a Pre-Defined Cron" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-job-predefined-cron/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Create a Job (/en/job-scheduling/help/job/introduction/) - Cron Expressions Help (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Submit a Job to the Job Pool Using a Pre-Defined Cron A **Pre-Defined {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}}** allows you to schedule job submissions to the job pool based on pre-set conditions. In this help section, we are going to go over the steps required to schedule the submission of a job to the job pool using a Pre-defined Cron. Before you create a pre-defined cron, depending on your {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} type, make sure the following components are configured and present in the Catalyst console: * **Function Job Pool**: The {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, if {{%link href="/en/cli/v1/initialize-resources/initialize-functions/" %}}initialized through Catalyst CLI{{%/link%}} needs to be deployed to the Catalyst console. * **Webhook Job Pool**: Ensure the URL of the third-party URL is a valid one. * **Circuit Job Pool**: Ensure that the {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} and its associated functions are created and present in the Catalyst console. * **AppSail Job Pool**: Ensure you have deployed your {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail service{{%/link%}} to the catalyst console. ### Configure the Pre-Defined Cron To create and configure a Pre-Defined Cron: 1. Navigate to the *Job Scheduling* service section of the Catalyst console and click **Start Exploring**. <br /> 2. Access the cron component by clicking **Cron** under *JOB EXECUTOR*, and click the **Create Cron** button present in the *Pre-defined* tab. <br /> 3. Provide a name for your cron in the **Cron Name** input field. <br /> 4. Choose a format type under **Select Format** Type: {{%tabs%}} {{%tab "Standard" %}} ### Standard Format 5. Select a {{%link href="/en/job-scheduling/help/cron/key-concepts/#schedule-type" %}}Schedule Type{{%/link%}}: {{%tabs%}} {{%tab "One-Time" %}} ### One-Time Schedule Type 6. Select the required date by clicking the **calendar icon**. <br /> 7. Provide the time for your cron's execution using the individual *Hours*, *Minutes*, and *Seconds* drop-downs under **Schedule Time**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Provide the {{%bold%}}Schedule Time{{%/bold%}} in the {{%bold%}}24-hour time format{{%/bold%}}, and you cannot leave the {{%italics%}}Hours{{%/italics%}}, {{%italics%}}Minutes{{%/italics%}}, or {{%italics%}}Seconds{{%/italics%}} input fields empty.{{%/note%}} 8. Select your required time zone from the **Time Zone** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The time zone you are currently present in will be automatically populated. If you require any other time zone to configure your cron, click the {{%bold%}}View all time zones{{%/bold%}} option and make your selection from the drop-down.{{%/note%}} 9. Confirm your configurations and click **Next**. <br /> {{%/tab%}} {{%tab "Recursive" %}} ### Recursive Schedule Type 6. Select the required recurring frequency from the **Repeat Type** drop-down: <br /> 7. Provide the time for your cron's execution using the individual *Hours*, *Minutes*, and *Seconds* drop-downs present under **Schedule Time**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Provide the {{%bold%}}Schedule Time{{%/bold%}} in the {{%bold%}}24-hour time format{{%/bold%}}, and you cannot leave the {{%italics%}}Hours{{%/italics%}}, {{%italics%}}Minutes{{%/italics%}}, or {{%italics%}}Seconds{{%/italics%}} input fields empty.{{%/note%}} 8. Select your required time zone from the **Time Zone** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The time zone you are currently present in will be automatically populated. If you require any other time zone to configure your cron, click the {{%bold%}}View all time zones{{%/bold%}} option and make your selection from the drop-down.{{%/note%}} Optionally, if you wish to terminate the cron schedule eventually, enable the **Cron termination details** toggle and select the end date using the **calendar** icon. <br /> 9. Confirm your configurations and click **Next**. <br /> {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Cron Expression" %}} ### Cron Expression Format 5. Input your **Cron Expression** in the input field. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can find the steps to configure cron expressions from this {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}section{{%/link%}}.{{%/note%}} 6. Select your required time zone from the **Time Zone** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The time zone you are currently present in will be automatically populated. If you require any other time zone to configure your cron, click the {{%bold%}}View all time zones{{%/bold%}} option and make your selection from the drop-down.{{%/note%}} 7. Optionally, if you have defined the schedule of your cron to in a recurssive manner, and if you are required to terminate the cron schedule eventually, enable the **Cron termination details** toggle and select the end date using the **calendar icon**. <br /> 8. Confirm your configurations and click **Next**. <br /> {{%/tab%}} {{%/tabs%}} We have now completed configuring the Pre-Defined Cron. Now we are going to configure the job that the Pre-Defined Cron will submit to the job pool at the scheduled time, to trigger the required target type. ### Configure the Job Once you click **Next** after configuring the Cron, you will be directed to create the job that the configured cron must submit. <br /> To create the required job: 1. Provide a name for your job in the **Job Name** input field. <br /> 2. Select the *Job Pool* you need your *Cron* to submit the job to, using the **Select Job Pool** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The configurations following your Job Pool selection are entirely dependent on the type of {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}} you created. For the purposes of this help documentation, we are going to illustrate the steps for a {{%bold%}}Webhook Job Pool{{%/bold%}}. You can find the steps to configure jobs for each of the Job Pool types in the following help sections: * Submit a job to the {{%bold%}}Function Job Poo{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}here{{%/link%}}. * Submit a job to the {{%bold%}}Circuit Job Pool{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}here{{%/link%}}. * Submit a job to the {{%bold%}}AppSail Job Pool{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}here{{%/link%}}.{{%/note%}} 3. Enter the complete URL of the webhook you wish to trigger in the input field and select the **Request Method** from the drop-down. <br /> 4. You can provide **Headers & Value** in a key-value pair format. <br /> 5. Enable the toggle to input **Query Parameters** and provide the **Params** in a key-value format. <br /> You can verify your **Query Parameters** in the *Preview URL* section. This section will be automatically populated when you input them. {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%italics%}}Query Parameters{{%/italics%}} are custom parameters that you can pass to your webhook. They are passed in a {{%bold%}}User-Defined format{{%/bold%}}, and you customize the parameter value and include any terms that you require to be passed in the parameter.{{%/note%}} 6. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. <br /> - You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/note%}} 7. Confirm your configurations, then click **Create**. <br /> The **Pre-defined Cron** will be created, with a unique {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}Cron ID{{%/link%}} generated by Catalyst. The job the cron is configured to submit will also be created along with its unique {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}Job ID{{%/link%}} generated by Catalyst. Upon clicking **Create**, you will be able to view all the details about the created cron and its configurations. <br /> If you wish to test the cron and not wait for the scheduled time, you can submit an immediate job to the job pool by clicking the **Submit Job** button. <br /> A job will be submitted immediately. The configurations of the job will be the one you configured while creating the cron. You can view the execution status of the job you submitted by clicking the **Execution History** button. <br /> The jobs will be listed in the latest order of execution. You can also perform search and filter options on the *Execution History* operations. -------------------------------------------------------------------------------- title: "Submit a Job to the Job Pool Using a Dynamic Cron" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Create a Job (/en/job-scheduling/help/job/introduction/) - Cron Expressions Help (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Submit a Job to the Job Pool Using a Dynamic Cron A **Dynamic {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}}** allows you to configure crons through code and schedule job submissions to the job pool dynamically durring runtime. In this help section, we are going to go over the steps required to schedule the submission of a job to the job pool using a Dynamic Cron. Before you create a dynamic cron, depending on your {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} type, make sure the following components are configured and present in the Catalyst console: * **Function Job Pool**: The {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}, if {{%link href="/en/cli/v1/initialize-resources/initialize-functions/" %}}initialized through Catalyst CLI{{%/link%}} needs to be deployed to the Catalyst console, along with the code file containing the configuration of your dynamic cron. * **Webhook Job Pool**: Ensure the URL of the third-party URL is a valid one. * **Circuit Job Pool**: Ensure that the {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} and its associated functions are created and present in the Catalyst console. * **AppSail Job Pool**: Ensure you have deployed your {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail service{{%/link%}} to the catalyst console. Points to remember when you create a **Dynamic Cron**: * Dynamic crons are ideally enabled and executed during run-time. * Dynamic crons created in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}Development Environment{{%/link%}} cannot be migrated to the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}Production environment{{%/link%}}. * Dynamic crons can be created using the *Builder*, in the {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}exact same way as a Pre-Defined Cron{{%/link%}}. However, this option is provided for you to **create and test the functionality** of your dynamic crons in the *Production environment*. ### Configure a Dynamic Cron To create and configure a Dynamic cron: 1. Navigate to the *Job Scheduling* service section of the Catalyst console and click **Start Exploring**. <br /> 2. Access the cron component by clicking **Cron** under *JOB EXECUTOR*, and click the **Create Cron** button present in the *Dynamic* tab. <br /> 3. Click the **SDK** tab. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this help documentation, we will only be going over the steps required to create a {{%bold%}}Dynamic Cron{{%/bold%}} through code using {{%bold%}}Catalyst SDK{{%/bold%}}. * You can refer this {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}help documentation{{%/link%}}, where steps to create a {{%italics%}}Pre-Defined Cron{{%/italics%}} using the {{%italics%}}Builder{{%/italics%}} are explained. The {{%italics%}}Builder{{%/italics%}} can be used in the exact same manner to create a {{%italics%}}Dynamic Cron{{%/italics%}}. * The option to employ Dynamic Crons using the {{%italics%}}Builder{{%/italics%}} is provided for you to **create and test the functionality** of your dynamic crons in the *Production environment*.{{%/note%}} 4. Choose the type of code snippet you require to code your cron from the drop-down. <br /> {{%tabs%}} {{%tab "One-Time Dynamic Cron" %}} ### Configure a One-Time Dynamic Cron {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="One-Time Dynamic Cron" footer="button" scroll="set-scroll" %}}// ONE TIME CRON => which will run after 60 minutes from the current time ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // get job scheduling instance // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_job_pool") // set the name of the function job pool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function job pool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // generate cron details ZCCronDetails oneTimeCronDetails = ZCCronBuilder.zcOneTimeCronBuilder() // get one time cron builder .setCronStatus(true) // set cron as enabled .cronConfig(System.currentTimeMillis() + (60 * 1000 * 1000)) // set the execution time as UNIX timestamp .setJobMeta(jobMeta) // set job meta (modify based on the job) .setCronName("one_time_cron") // set cron name (unique) .build(); // build cron details // create one time cron ZCCronDetails oneTimeCron = jobScheduling.cron.createCron(oneTimeCronDetails); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="One-Time Dynamic Cron" footer="button" scroll="set-scroll" %}}// ONE TIME CRON => which will run after 60mins for the current time const jobScheduling = app.jobScheduling(); // create job scheduling instance // create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create one time cron details const oneTimeCron = { cron_name: 'one_time', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'OneTime', // set the cron type as OneTime cron_detail: { time_of_execution: Date.now() + (60 * 1000 * 1000) + '' // set the execution time as UNIX timestamp }, job_meta: jobMeta // set the function job meta }; // create one time cron const cronDetails = await jobScheduling.CRON.createCron(oneTimeCron); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="One-Time Dynamic Cron" footer="button" scroll="set-scroll" %}} # ONE TIME CRON => which will run after 60mins for the current time job_scheduling = app.job_scheduling() # create job scheduling instance # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # create one time cron one_time_cron_details = job_scheduling.CRON.create({ 'cron_name': 'one_time', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'OneTime', # set the cron type as OneTime 'cron_detail': { 'time_of_execution': int(time.time()) + (60 * 10 * 1000) # set the execution time as UNIX timestamp }, 'job_meta': job_meta # set the function job meta }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Recursive Dynamic Cron" %}} ### Configure a Recursive Dynamic Cron {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Recursive Dynamic Cron" footer="button" scroll="set-scroll" %}}ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // get job scheduling instance // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_job_pool") // set the name of the function job pool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function job pool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // EVERY CRON => which will be run for every 2hrs 1min and 3sec // generate cron details ZCCronDetails everyCronDetails = ZCCronBuilder.zcEveryCronBuilder() // get every cron builder .setCronStatus(true) // set cron as enabled .setTime(2, 1, 3) // set the repetition interval .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("every_cron") // set cron name (unique) .build(); // build cron details // create every cron ZCCronDetails everyCron = jobScheduling.cron.createCron(everyCronDetails); // DAILY CRON => which will be run on 0hrs 0mins and 0sec daily // generate cron details ZCCronDetails dailyCronDetails = ZCCronBuilder.zcDailyCronBuilder() // get daily cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("daily_cron") // set cron name (unique) .build(); // build cron details // create daily cron ZCCronDetails dailyCron = jobScheduling.cron.createCron(dailyCronDetails); // MONTHLY CRON => which will be run on 0hrs 0mins 0sec on 1st 3rd and 5th days of every month // generate cron details ZCCronDetails monthlyCronDetails = ZCCronBuilder.zcMonthlyCronBuilder() // get monthly cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed .setDays(1, 3, 5) // set the days of the month (day based config) // .setWeeksOfMonth(1, 3) // set the weeks of the month (either week based or day based config is necessary) // .setDayOfTheWeek(1, 2) // set the days of the week (either week based or day based config is necessary) .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("monthly_cron") // set cron name (unique) .build(); // build cron details // create monthly cron ZCCronDetails monthlyCron = jobScheduling.cron.createCron(monthlyCronDetails); // YEARLY CRON => which will be run on 0hrs 0min 0sec on 1st 2nd 3rd days of the 8th month of a year // generate cron details ZCCronDetails yearlyCronDetails = ZCCronBuilder.zcYearlyCronBuilder() // get yearly cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed .setDays(1, 2, 3) // set the days of the month // .setWeeksOfMonth(1) // set the weeks of the month (either week based or day based config is necessary) // .setDayOfTheWeek(3) // set the days of the week (either week based or day based config is necessary) .setMonths(8) // set the months .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("yearly_cron") // set cron name (unique) .build(); // build cron details // create yearly cron ZCCronDetails yearlyCron = jobScheduling.cron.createCron(yearlyCronDetails); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Recursive Dynamic Cron" footer="button" scroll="set-scroll" %}}const jobScheduling = app.jobScheduling(); // create job scheduling instance // create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // EVERY CRON => which will be run for every 2hrs 1min and 3sec // create every cron details const everyCron = { cron_name: 'every_cron', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'Periodic', // set the cron type as Periodic for every cron cron_detail: { hour: 2, // set the hour interval of the repetition minute: 1, // set the minute interval of the repetition second: 3, // set the second interval of the repetition repetition_type: "every" // set the repetition type as every for every cron }, job_meta: jobMeta // set the function job meta }; // create every cron const everyCronDetails = await jobScheduling.CRON.createCron(everyCron); // DAILY CRON => which will be run on 0hrs 0mins and 0sec daily // create daily cron details const dailyCron = { cron_name: 'daily_cron', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed repetition_type: 'daily' // set the repetition type as daily for daily cron }, job_meta: jobMeta // set the function job meta }; // create daily cron const dailyCronDetails = await jobScheduling.CRON.createCron(dailyCron); // MONTHLY CRON => which will be run on 0hrs 0mins 0sec on 1st 3rd and 5th days of every month // create monthly cron details const monthlyCron = { cron_name: 'monthly_cron', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed days: [1, 3, 5], // set the days of the month in which the cron should be executed // week_day: [1, 3], // set the days of the week in a month during which the cron should be executed // weeks_of_month: [2], // set the weeks of the month during which the cron should be executed repetition_type: 'monthly' // set the repetition type as monthly for monthly cron }, job_meta: jobMeta // set function job meta }; // create monthly cron const monthlyCronDetails = await jobScheduling.CRON.createCron(monthlyCron); // YEARLY CRON => which will be run on 0hrs 0min 0sec on 1st 2nd 3rd days of the 8th month of a year // create yearly cron details const yearlyCron = { cron_name: 'yearly_cron', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed days: [1, 2, 3], // set the days of the month in which the cron should be executed // week_day: [1, 3], // set the days of the week in a month during which the cron should be executed // weeks_of_month: [2], // set the weeks of the month during which the cron should be executed months: [8], // set the months of the year in which the cron should be executed repetition_type: 'yearly' // set the repetition type as yearly for yearly cron }, job_meta: jobMeta // set function job meta }; // create yearly cron const yearlyCronDetails = await jobScheduling.CRON.createCron(yearlyCron); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Recursive Dynamic Cron" footer="button" scroll="set-scroll" %}}job_scheduling = app.job_scheduling() # create job scheduling instance # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # EVERY CRON => which will be run for every 2hrs 1min and 3sec # create every cron every_cron = job_scheduling.CRON.create({ 'cron_name': 'every_cron', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Periodic', # set the cron type as Periodic for every cron 'cron_detail': { 'hour': 2, # set the hour interval of the repetition 'minute': 1, # set the minute interval of the repetition 'second': 3, # set the second interval of the repetition 'repetition_type': 'every' # set the repetition type as every for every cron }, 'job_meta': job_meta # set the function job meta }) # DAILY CRON => which will be run on 0hrs 0mins and 0sec daily # create daily cron daily_cron = job_scheduling.CRON.create({ 'cron_name': 'daily_cron', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Calendar', # set the cron type as Calendar for daily, monthly and yearly 'cron_detail': { 'hour': 0, # set the hour of the day in which the cron should be executed 'minute': 0, # set the minute of the day in which the cron should be executed 'second': 0, # set the second of the day in which the cron should be executed 'repetition_type': 'daily' # set the repetition type as daily for daily cron }, 'job_meta': job_meta # set the function job meta }) # MONTHLY CRON => which will be run on 0hrs 0mins 0sec on 1st 3rd and 5th days of every month # create monthly cron monthly_cron = job_scheduling.CRON.create({ 'cron_name': 'monthly_cron', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Calendar', # set the cron type as Calendar for daily, monthly and yearly 'cron_detail': { 'hour': 0, # set the hour of the day in which the cron should be executed 'minute': 0, # set the minute of the day in which the cron should be executed 'second': 0, # set the second of the day in which the cron should be executed 'days': [1, 3, 5], # set the days of the month in which the cron should be executed # 'week_day': [1, 3], # set the days of the week in a month during which the cron should be executed # 'weeks_of_month': [2], # set the weeks of the month during which the cron should be executed 'repetition_type': 'monthly' # set the repetition type as monthly for monthly cron }, 'job_meta': job_meta # set function job meta }) # YEARLY CRON => which will be run on 0hrs 0min 0sec on 1st 2nd 3rd days of the 8th month of a year # create yearly cron yearly_cron = job_scheduling.CRON.create({ 'cron_name': 'yearly_cron', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Calendar', # set the cron type as Calendar for daily, monthly and yearly 'cron_detail': { 'hour': 0, # set the hour of the day in which the cron should be executed 'minute': 0, # set the minute of the day in which the cron should be executed 'second': 0, # set the second of the day in which the cron should be executed 'days': [1, 2, 3], # set the days of the month in which the cron should be executed # 'week_day': [1, 3], # set the days of the week in a month during which the cron should be executed # 'weeks_of_month': [2], # set the weeks of the month during which the cron should be executed 'months': [8], # set the months of the year in which the cron should be executed 'repetition_type': 'yearly' # set the repetition type as yearly for yearly cron }, 'job_meta': job_meta # set function job meta }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Define Dynamic Cron Using Cron Expressions" %}} ### Define Dynamic Crons Using Cron Expressions {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Dynamic Cron Using Cron Expressions" footer="button" scroll="set-scroll" %}}// EXPRESSION CRON => which will be run for on 0hrs 0min on every 1st day of the weeks in the first month of the year ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // get job scheduling instance // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_job_pool") // set the name of the function job pool (optional) (either JobpoolId or JobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function job pool (optional) (either JobpoolId or JobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // generate cron details ZCCronDetails expressionCronDetails = ZCCronBuilder.zcExpressionCronBuilder() // get expression corn builder .setCronStatus(true) // set cron as enabled .setCronExpression("0 0 * 1 1") // set the UNIX cron expression .setCronName("expression_cron") // set cron name .setJobMeta(jobMeta) // set job meta .build(); // build cron details // create expression cron ZCCronDetails expressionCron = jobScheduling.cron.createCron(expressionCronDetails); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Dynamic Cron Using Cron Expressions" footer="button" scroll="set-scroll" %}}// EXPRESSION CRON => which will be run for on 0hrs 0min on every 1st day of the weeks in the first month of the year const jobScheduling = app.jobScheduling(); // create job scheduling instance // create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function job pool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create expression cron details const expressionCron = { cron_name: 'expression_cron', // set a name for the cron (unique) cron_status: true, // set the cron status as enabled cron_type: 'CronExpression', // set the cron type as Calendar for daily, monthly and yearly cron_expression: '0 0 * 1 1', // set the cron expression cron_detail: {}, // set the cron details job_meta: jobMeta // set function job meta }; // create expression cron const expressionCronDetails = await jobScheduling.CRON.createCron(expressionCron); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Dynamic Cron Using Cron Expressions" footer="button" scroll="set-scroll" %}} # CRON EXPRESSION => which will be run for on 0hrs 0min on every 1st day of the weeks in the first month of the year job_scheduling = app.job_scheduling() # create job scheduling instance # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # create expression cron expression_cron = job_scheduling.CRON.create({ 'cron_name': 'expression_cron', # set a name for the cron (unique) 'cron_status': True, # set the cron status as enabled 'cron_type': 'CronExpression', # set the cron type as Calendar for daily, monthly and yearly 'cron_expression': '0 0 * 1 1', # set the cron expression 'cron_detail': {}, # set the cron details 'job_meta': job_meta # set function job meta }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%/tabs%}} 5. Copy the code according to the requirement using the **copy-icon** and add it to your business logic and code according to your requirement. 6. The dynamic cron configurations present in your code files will be deployed and available in your console when you {{%link href="" %}}deploy your project to the Catalyst console{{%/link%}}. 7. The Dynamic Cron will be created during runtime, and the job configured in the code will be submitted to the job pool durring runtime at the configured schedule. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Code snippets to create your required dynamic cron for each run time can also be found in each runtime's SDK documentation: * {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python SDK{{%/link%}}{{%/note%}} -------------------------------------------------------------------------------- title: "Manage Cron Using the Console" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/manage-cron/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Create a Job (/en/job-scheduling/help/job/introduction/) - Cron Expressions Help (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Manage Cron Using the Console Once you have created your required cron, you can perform **Edit** and **Delete** operations on it. {{%note%}}{{%bold%}}Note:{{%/bold%}} This help documentation is going to illustrate {{%bold%}}Edit{{%/bold%}} and {{%bold%}}Delete{{%/bold%}} operations on a {{%bold%}}Pre-Defined Cron{{%/bold%}}. The steps to {{%bold%}}Edit{{%/bold%}} and {{%bold%}}Delete{{%/bold%}} a {{%bold%}}Dynamic cron{{%/bold%}} using the console is the same.{{%/note%}} Access your list of crons by clicking **Cron** under *JOB Executor* in the Job Scheduling console. <br /> In addition to edit and delete , in this section, you can also perform the following operations: <br /> * Click the **Create Cron** button to create a new cron. * Perform *search operations* on the list of crons. * Click the **logs-icon** present next to each cron under the *Execution History* column to view the execution status of all the jobs that were submitted by a particular cron. You can perform **Edit** and **Delete** operations on your cron in two places: * In the **Cron** component section with all the crons listed: <br /> * After you click on your required cron and directed to the page listing cron details and configurations. <br /> ### Edit a Cron To edit a cron: 1. Click the **ellipsis icon** next to the cron, then select **Edit**. <br /> - You can edit every input selection of the cron. <br /> - You can also edit the configurations of the job the cron is going to submit to the job pool. <br /> 2. Click Update, once you complete your edits. <br /> The cron will be edited. ### Delete a Cron To delete a cron: 1. Click the **ellipsis icon** next to the cron, then select **Delete**. <br /> 2. Click **Delete** in the prompt to confirm your selection. <br /> The cron will be deleted. ### Enable or Disable a Cron To **enable** or **disable** a cron click the toggle present under *Status* column in the list of crons. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} A disabled or exhausted {{%bold%}}one-time cron{{%/bold%}} cannot be re-enabled as its execution will only happen once. Hence, it is best to delete it once its execution is completed.{{%/note%}} -------------------------------------------------------------------------------- title: "Submit a Job to the Job Pool Using Jobs Component" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.598Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Job Documentation (/en/job-scheduling/help/job/introduction/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Submit a Job to the Job Pool Using Jobs Component You can use the **Jobs** component to submit jobs to its job pool instantly. The job can be created and submitted either using the console's *Builder* or using the {{%link href="/en/sdk/java/v1/job-scheduling/overview/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/job-scheduling/overview/" %}}Node.js{{%/link%}} or {{%link href="/en/sdk/python/v1/job-scheduling/overview/" %}}Python{{%/link%}} SDK. Before you submit a job to the job pool, you need to ensure: * If the job is being submitted to a {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}Function Job Pool{{%/link%}}, then the job pool needs to be created with proper memory allocation to {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay" %}}avoid dispatch delays{{%/link%}}. To submit a job to a job pool: 1. Navigate to the *Catalyst Job Scheduling* Service section of the console, then click **Start Exploring**. <br /> 2. Navigate to **Jobs** under *JOB EXECUTOR* present in the side-bar, then click **Create Job**. <br /> {{%tabs%}} {{%tab "Using the Builder" %}} ### Create Job Using Builder 3. Provide a name for your job in the **Job Name** input field. <br /> 4. Select the *Job Pool* you wish to submit this job in using the **Select Job Pool** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} If you have not previously created any job pools, click {{%bold%}}Create New{{%/bold%}}. You will be directed to the {{%italics%}}Job Pool{{%/italics%}} section. Steps to create a job pool can be found {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}here{{%/link%}}.{{%/note%}} 5. Based on your job pool's **Target Type**, the steps to configure a job vary. For the purposes of this help documentation, we are going to create a job for the **Function Job Pool**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can find the steps to configure a job for: * {{%bold%}}Webhook Job Pool{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}here{{%/link%}} * {{%bold%}}Circuit Job Pool{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}here{{%/link%}} * {{%bold%}}AppSail Job Pool{{%/bold%}}: {{%link href="/en/job-scheduling/help/implementation/create-jobpool/" %}}here{{%/link%}}{{%/note%}} 6. Select the {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} you wish to trigger from the **Target Function** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} * If you have {{%link href="/en/cli/v1/initialize-resources/initialize-functions/" %}}initialized{{%/link%}} and coded a {{%italics%}}Job Function{{%/italics%}} from the CLI, ensure you {{%link href="/en/cli/v1/deploy-resources/deploy-options/#--only-lttargetsgt" %}}deploy it to the Catalyst console{{%/link%}} for the function to be listed in the drop-down. * If you have not created a {{%italics%}}Job Function{{%/italics%}}, click {{%bold%}}Create New{{%/bold%}}. You will be directed to the Catalyst Serverless section of the console. You can find steps to create a {{%italics%}}Job Function{{%/italics%}} from this {{%link href="/en/serverless/help/functions/implementation/#create-a-function" %}}section{{%/link%}}.{{%/note%}} 7. You can also enable the toggle present in the pop up to pass **Query Parameters** to your *Job Function* when the job triggers the function. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%italics%}}Query Parameters{{%/italics%}} are custom parameters that you can pass to your job function. They are passed in a {{%bold%}}User-Defined format{{%/bold%}}, and you customize the parameter value and include any terms that you require to be passed in the parameter.{{%/note%}} 8. You can click the **Show Advanced Options** to provide resubmission instructions. <br /> 9. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of {{%bold%}}10 retries{{%/bold%}} with a minimum retry interval of {{%bold%}}1 minute{{%/bold%}} and a maximum retry interval of {{%bold%}}24Hrs{{%/bold%}}.{{%/note%}} 10. Confirm your configurations and click **Create**. <br /> Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pools performance. {{%/tab%}} {{%tab "Using the SDK" %}} ### Create Job Using SDK 3. Click the **SDK** tab. <br /> 4. Based on your **target type** requirement, choose the relevant SDK from the drop-down. <br /> {{%tabs%}} {{%tab "Function" %}} ### Function Target Type <br /> 5. Select The required runtime, and click the copy button to copy the code snippet. <br /> {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// FUNCTION JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the function job pool named test // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // submit function job ZCJobDetails functionJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// FUNCTION JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the function job pool named test // create function job const functionJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}# FUNCTION JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the function jobpool named test # create function job function_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set params to be passed to target function (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Circuit" %}} ### Circuit Target Type <br /> 5. Select The required runtime, and click the copy button to copy the code snippet. <br /> {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// CIRCUIT JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the circuit job pool named test // generate circuit job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.circuitJobBuilder() // create circuit job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_circuit") // set target circuits's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target circuits's Id (optional) (either TargetName or TargetId is mandatory) .setCircuitInput(new JSONObject() { { put("key1", "value1"); put("key2", "value2"); } }) // set the test cases for the circuit .setJobName("test_job") // set job name .build(); // build circuit job meta // submit circuit job ZCJobDetails circuitJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// CIRCUIT JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the circuit job pool named test // create circuit job const circuitJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Circuit', // set the target type as Circuit for circuit jobs target_name: 'target_circuit', // set the target circuit's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target circuit's Id (optional) (either target_id or target_name is mandatory) test_cases: { arg1: "job", arg2: "test" }, // set the circuit test cases job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}# CIRCUIT JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the circuit jobpool named test # create circuit job circuit_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Circuit', # set the target type as Circuit for circuit jobs 'target_name': 'target_circuit', # set the target circuit's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target circuit's Id (optional) (either target_id or target_name is mandatory) 'test_cases': { 'arg1': 'job', 'arg2': 'test' }, # set the circuit test cases 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "Webhook" %}} ### Webhook Target Type <br /> 5. Select The required runtime, and click the copy button to copy the code snippet. <br /> {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// WEB HOOK JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the webhook job pool named test // generate webhook job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.webhookJobBuilder() // create webhook job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setRequestMethod("POST") // set webhook request's method .setUrl("https://catalyst.zoho.com") // set webhook request's url .setParams(new JSONObject() { { put("arg1", "test"); put("arg2", "job"); } }) // set the webhook request's query params (optional) .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the webhook request's headers (optional) .setRequestBody("test_request") // set the webhook request's body (optional) .setJobName("test_job") // set job name .build(); // build webhook job meta // submit webhook job ZCJobDetails webHookJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// WEBHOOK JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the webhook job pool named test // create webhook job const webhookJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Webhook', // set the target type as Webhook for webhook jobs request_method: 'POST', // set the webhook request's method url: 'https://catalyst.zoho.com', // set the webhook request's url params: { arg1: 'test', arg2: 'job' }, // set the webhook request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the webhook request's headers (optional) request_body: 'test_request', // set the webhook request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}# WEBHOOK JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the webhook jobpool named test # create webhook job webhook_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Webhook', # set the target type as Webhook for webhook jobs 'request_method': 'POST', # set the webhook request's method 'url': 'https://catalyst.zoho.com', # set the webhook request's url 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the webhook request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the webhook request's headers (optional) 'request_body': 'test_request', # set the webhook request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%tab "AppSail" %}} ### AppSail Target Type <br /> 5. Select The required runtime, and click the copy button to copy the code snippet. <br /> {{%tabs%}} {{%tab "Java" %}} {{%panel_with_adjustment class="language-java line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// APPSAIL JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the appsail job pool named test // generate appsail job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.appSailJobBuilder() // create appsail job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("test_appsail") // set appsail name .setRequestMethod("POST") // set appsail request method .setUrl("/test") // set appsail request url .setParams(new JSONObject() { { put("arg1", "value1"); put("arg2", "value2"); } }) // set appsail request query params .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the appsail request's headers (optional) .setRequestBody("test_request") // set the appsail request's body (optional) .setJobName("test_job") // set job name .build(); // build appsail job meta // submit appsail job ZCJobDetails appSailJob = jobpool.submitJob(jobMeta); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Node.js" %}} {{%panel_with_adjustment class="language-javascript line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}// APPSAIL JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the appsail job pool named test // create appsail job const appsailJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'AppSail', // set the target type as AppSail for appsail jobs target_name: 'target_appsail', // set the target appsail's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target appsail's Id (optional) (either target_id or target_name is mandatory) request_method: 'POST', // set the appsail request's method url: '/test', // set the appsail's url path (optional) params: { arg1: 'test', arg2: 'job' }, // set the appsail request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the appsail request's headers (optional) request_body: 'test_request', // set the appsail request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{%panel_with_adjustment class="language-python line-numbers" header="Submit Job" footer="button" scroll="set-scroll" %}}# APPSAIL JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the appsail jobpool named test # create appsail job appsail_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'AppSail', # set the target type as AppSail for appsail jobs 'target_name': 'target_appsail', # set the target appsail's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target appsail's Id (optional) (either target_id or target_name is mandatory) 'request_method': 'POST', # set the appsail request's method 'url': '/test', # set the appsail's url path (optional) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the appsail request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the appsail request's headers (optional) 'request_body': 'test_request', # set the appsail request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%/tab%}} {{%/tabs%}} 6. Paste the snippet in your code file and engineer your logic. The job that you create for your project will always be available in the **Job** component section. {{%/tab%}} {{%/tabs%}} Once the job is submitted, you will be able to view all the general details of the submitted job in the *Job Definition* section. You will also be able to view the status of the job execution in the *Job Execution & Status* section. <br /> The execution status of the job will also be labeled at the top next to the Job Name. You will also be provided with the *Job Definition* in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in {{%link href="/en/devops/help/logs/introduction/" %}}DevOps's Logs{{%/link%}} component by clicking the **View Logs** button. -------------------------------------------------------------------------------- title: "Manage Jobs" description: "Learn about working with Catalyst Job Scheduling that provides components for you schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: "2026-03-18T07:41:08.599Z" source: "https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/manage-jobs/" service: "Job Scheduling" related: - Job Pool Documentation (/en/job-scheduling/help/jobpool/introduction/) - Cron Documentation (/en/job-scheduling/help/cron/introduction/) - Job Documentation (/en/job-scheduling/help/job/introduction/) - Submit a Job Using Pre-Defined Cron (/en/job-scheduling/help/implementation/submit-job-predefined-cron/) - Submit a Job Using Dynamic Cron (/en/job-scheduling/help/implementation/submit-job-dynamic-cron/) - Submit a Job to the Job Pool Using Jobs Component (/en/job-scheduling/help/implementation/submit-jobs-using-jobs/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - Job Scheduling REST APIs (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Manage Jobs After you create your jobs, you will be able to access the following section. <br /> In this section, you will be able to view the following details: * Job Name * {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}Job ID{{%/link%}} * Submitted Time * Dispatch Delay Time * Execution Status * Source Type * Source name * Job Pool Name ### Filter and Search Operations You can perform the following actions in the **Jobs** component section: - Perform **search operations** on the list of jobs. - **Filter** the list of jobs created for your project based on the following filters: - **Status** <br /> - **Timezone & Time Duration** and **Time Intervals** <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can click {{%bold%}}Custom Range{{%/bold%}} to filter your jobs based on required date, time and time zone range.{{%/note%}} - Submit a new job to your job pool by clicking the **Add New Job** button. <br /> ### Delete a Job To delete a job: 1. Click the **ellipsis-icon** next to each job and click **Delete**. <br /> 2. Confirm your decision by clicking **Delete** in the prompt. <br /> The job will be deleted. Alternatively you can also perform the delete operation from the *Job Definition* page. 1. Click the **ellipsis-icon** on the right and click **Delete**. <br /> 2. Confirm your decision by clicking **Delete** in the prompt. <br /> --- ## API Reference — Job Scheduling ### Cron -------------------------------------------------------------------------------- title: "Get Cron By Identifier" description: "This API enables you to get all available details of a cron present in the project." last_updated: "2026-03-18T07:41:08.608Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/get-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/get-cron/" id="GetCronByIdentifier" %}} {{%divtag class="LeftContent"%}} # Get Cron By Identifier ### Description This API enables you to get all available details of a cron present in the project. The cron is referred by its unique identifier like ID or name. {{%note%}}{{%bold%}}Note:{{%/bold%}} This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/cron/{cron_id/cron_name}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.READ {{%/scope%}} ### Response Details The JSON response returns the metadata of a specific cron present in the project. The response will also contain the details of the user who created and last modified it. {{%note%}}{{%bold%}}Note:{{%/bold%}} The above response occurred when we attempted to {{%badge%}}{{%bold%}}GET{{%/bold%}}{{%/badge%}} a {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Cron{{%/link%}}. For a {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Cron{{%/link%}}, the response will be similar but the execution_type will contain the value as '{{%badge%}}dynamic{{%/badge%}}'.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron/10108000004154323 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "pcMonthlyDay", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004154323", "url": "", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "AppSail", "target_details": { "id": "10108000002976191", "target_name": "appsailTrue" }, "source_type": "Cron", "source_details": { "id": "10108000004154321", "source_name": "pcMonthlyDay", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000002976201", "jobpool_details": { "type": "AppSail", "name": "appsailJP", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "Mar 28, 2024 05:41 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Mar 28, 2024 05:41 PM", "capacity": { "number": "5" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "id": "10108000002976201" }, "request_method": "get" }, "cron_status": true, "created_time": "Jun 04, 2024 04:31 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 04, 2024 04:31 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "end_time": "1718303399", "cron_detail": { "hour": 4, "minute": 4, "second": 4, "repetition_type": "monthly", "days": [ 1, 3, 4 ], "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004154321" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/get-cron-details/"%}}Get Details of a Particular Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/"%}}Get Details of a Particular Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/get-cron-details/"%}}Get Details of a Particular Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Get All Crons" description: "This API enables you to retrieve details of all Pre-defined crons present in the project." last_updated: "2026-03-18T07:41:08.608Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/get-all-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/get-all-cron/" id="GetAllCrons" %}} {{%divtag class="LeftContent"%}} # Get All Crons ### Description This API enables you to retrieve details of all Pre-defined crons present in the project. {{%note%}}{{%bold%}}Note:{{%/bold%}} This API is only applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{app_domain}/baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.READ {{%/scope%}} ### Response Details The JSON response returns the metadata of all the crons present in the project. The response will also contain the details of the user who created and last modified the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": [ { "cron_name": "circuitCron", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280089", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "Circuit", "target_details": { "id": "10108000004194246", "target_name": "abc" }, "source_type": "Cron", "source_details": { "id": "10108000004280087", "source_name": "circuitCron", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823699", "jobpool_details": { "type": "Circuit", "name": "InventoryDataMaintaince", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:49 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:49 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823699" }, "headers": {}, "params": { "key1": "value1", "key2": "value2", "key3": "value3" } }, "cron_status": true, "created_time": "Jun 07, 2024 11:09 AM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 11:09 AM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717871399", "cron_detail": { "hour": 4, "minute": 3, "second": 0, "repetition_type": "daily", "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004280087" }, { "cron_name": "functionCron", "description": "functionCron", "cron_type": "CronExpression", "cron_execution_type": "pre-defined", "cron_expression": "* * * * *", "job_meta": { "id": "10108000004280074", "url": "", "job_name": "functionJob", "job_config": { "number_of_retries": 0 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280072", "source_name": "functionCron", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "p1": "v1" } }, "cron_status": true, "created_time": "Jun 07, 2024 11:08 AM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 11:08 AM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718908199", "cron_detail": { "hour": 0, "minute": 0, "second": 0, "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004280072" }, { "cron_name": "abcUpdated", "cron_type": "OneTime", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004153012", "url": "https://www.google.com", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "Webhook", "target_details": { "target_name": "https://www.google.com" }, "source_type": "Cron", "source_details": { "id": "10108000004152971", "source_name": "abcUpdated", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823632", "jobpool_details": { "type": "Webhook", "name": "VendorDataFetch", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:47 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:47 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823632" }, "request_method": "get" }, "cron_status": false, "created_time": "Jun 04, 2024 03:56 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 04, 2024 03:57 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "-1", "cron_detail": { "time_of_execution": 1717612200, "hour": 0, "minute": 0, "second": 0, "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004152971" }, { "cron_name": "abcupdate", "description": "abc", "cron_type": "OneTime", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004108000", "url": "https://www.google.com", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "Webhook", "target_details": { "target_name": "https://www.google.com" }, "source_type": "Cron", "source_details": { "id": "10108000004107959", "source_name": "abcupdate", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823632", "jobpool_details": { "type": "Webhook", "name": "VendorDataFetch", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:47 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:47 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823632" }, "headers": {}, "params": {}, "request_method": "get" }, "cron_status": false, "created_time": "Jun 03, 2024 05:19 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 03, 2024 05:20 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "-1", "cron_detail": { "time_of_execution": 1717623183, "hour": 0, "minute": 0, "second": 0, "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004107959" } ] } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/get-all-cron-details/"%}}Get All Crons- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/"%}}Get All Crons- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/get-all-cron-details/"%}}Get All Crons- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Submit Cron Instantly" description: "This API enables you to submit a cron that will instantly submit a job to the job pool to trigger a target type endpoint." last_updated: "2026-03-18T07:41:08.609Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/submit-cron-now/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/submit-cron-now/" id="SubmitCronInstantly" %}} {{%divtag class="LeftContent"%}} # Submit Cron Instantly ### Description This API enables you to submit a cron that will instantly {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}submit a job to the job pool{{%/link%}} to trigger a target type endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * This API is ideally used to test if the configured cron is functioning as configured. * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{app_domain}/baas/v1/project/{project_id}/job_scheduling/cron/{cron_id}/submit_job</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} ### Response Details The JSON response returns the metadata of the submitted cron. The response will also contain the details of the user who submitted the cron. {{%note%}}{{%bold%}}Note:{{%/bold%}} The above response is for a cron submitting a function job. For webhook, AppSail, and Circuit, the {{%badge%}}target_type{{%/badge%}} will change. This is quite similar to the API functionality illustrated in {{%link href="/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/#SubmitaFunctionJobByID" %}}Submit a Job{{%/link%}}.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron/10108000003822189/submit_immediately -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000004251242", "created_time": "Jun 07, 2024 10:32 AM", "response_code": null, "start_time": {}, "end_time": {}, "submitted_on": { "startTimeToRedirectLogsPage": "07/06/2024 10:27", "timeWithGivenTimezone": "Jun 07, 2024 10:32 AM IST", "timeWithJobTimezone": "Jun 07, 2024 10:32 AM IST" }, "job_status": "PENDING", "capacity": { "memory": "256" }, "job_meta_details": { "id": "10108000003822191", "url": "", "job_name": "delayJob", "job_config": { "number_of_retries": 0 }, "target_type": "Function", "target_details": { "id": "10108000003822071", "target_name": "fn" }, "source_type": "Cron", "source_details": { "id": "10108000003822189", "source_name": "check2", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003822066", "headers": {}, "params": {} }, "retried_count": null, "parent_job_id": "10108000004251242", "execution_time": null, "cron_circuit_id": null, "circuit_execution": null, "status": false } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/"%}}Create Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/"%}}Create Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/"%}}Create Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Patch Cron" description: "This API enables you to enable or disable a cron present in the project." last_updated: "2026-03-18T07:41:08.609Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/patch-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/patch-cron/" id="PatchCron" %}} {{%divtag class="LeftContent"%}} # Patch Cron ### Description This API enables you to enable or disable a cron present in the project. The cron is referred by its unique identifier like ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} This API requests it to disable a cron. You need to pass {{%badge%}}true{{%/badge%}} as the value for the key {{%badge%}}cron_status{{%/badge%}} in the sample request, if your requirement is to {{%bold%}}enable{{%/bold%}} the cron.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PATCH" %}}<p>{app_domain}/baas/v1/project/{project_id}/job_scheduling/cron/{cron_id}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} ### Response Details The JSON response returns the metadata of the cron you are required to enable or disable. The response will also contain the details of the user who changed the status of the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X PATCH https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron/10108000004280087 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” -H "Content-Type:application/json" -\-data-raw '{"id":"10108000004280087","cron_status":false}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "circuitCron", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280089", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "Circuit", "target_details": { "id": "10108000004194246", "target_name": "abc" }, "source_type": "Cron", "source_details": { "id": "10108000004280087", "source_name": "circuitCron", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823699", "jobpool_details": { "type": "Circuit", "name": "InventoryDataMaintaince", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:49 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:49 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823699" }, "headers": {}, "params": { "key1": "value1", "key2": "value2", "key3": "value3" } }, "cron_status": false, "created_time": "Jun 07, 2024 11:09 AM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 11:09 AM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717871399", "cron_detail": { "hour": 4, "minute": 3, "second": 0, "repetition_type": "daily", "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004280087" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Delete Cron" description: "This API enables you to delete a cron present in the project." last_updated: "2026-03-18T07:41:08.609Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/delete-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/delete-cron/" id="DeleteCron" %}} {{%divtag class="LeftContent"%}} # Delete Cron ### Description This API enables you to delete a cron present in the project. The cron is referred by its unique identifier like ID or name. {{%note%}}{{%bold%}}Note:{{%/bold%}} This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apired" req="DELETE" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/cron/{cron_id/cron_name}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.DELETE {{%/scope%}} ### Response Details The JSON response returns the metadata of the deleted cron. The response will also contain the details of the user who deleted the cron. {{%note%}}{{%bold%}}Note:{{%/bold%}} The response is similar for both Pre-Defined and Dynamic Crons. Only the value of {{%badge%}}execution_type{{%/badge%}} will change in the response based on the cron type.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X DELETE https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron/10108000004154323 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57 {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "pcMonthlyDay", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004154323", "url": "", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "AppSail", "target_details": { "id": "10108000002976191", "target_name": "appsailTrue" }, "source_type": "Cron", "source_details": { "id": "10108000004154321", "source_name": "pcMonthlyDay", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000002976201", "jobpool_details": { "type": "AppSail", "name": "appsailJP", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "Mar 28, 2024 05:41 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Mar 28, 2024 05:41 PM", "capacity": { "number": "5" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "id": "10108000002976201" }, "request_method": "get" }, "cron_status": true, "created_time": "Jun 04, 2024 04:31 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 04, 2024 04:31 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "end_time": "1718303399", "cron_detail": { "hour": 4, "minute": 4, "second": 4, "repetition_type": "monthly", "days": [ 1, 3, 4 ], "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004154321" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/delete-cron/"%}}Delete Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/delete-cron/"%}}Delete Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/delete-cron/"%}}Delete Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} #### Create Cron -------------------------------------------------------------------------------- title: "Create a Cron Using Cron Expressions" description: "This API enables you to create a cron using cron expressions that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.609Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/" id="CreateaCronUsingCronExpressions" %}} {{%divtag class="LeftContent"%}} # Create a Cron Using Cron Expressions ### Description This API enables you to create a recurring type cron defined using {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}**Cron Expressions**{{%/link%}} that at the scheduled time will submit a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} and trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "CronExpression", "cron_status": true, "cron_expression": "* * * * *", "job_detail": { "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "1", "retry_interval": "500" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "cronExp", "description": "cronexpression", "end_time": 1717916399, "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"CronExpression","cron_status":true,"cron_expression":"* * * * *","job_detail":{"timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"1","retry_interval":"500"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"cronExp","description":"cronexpression","end_time":1717916399,"cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "cronExp", "description": "cronexpression", "cron_type": "CronExpression", "cron_execution_type": "pre-defined", "cron_expression": "* * * * *", "job_meta": { "id": "10108000004280709", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280707", "source_name": "cronExp", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:51 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:51 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717916399", "cron_detail": { "jobId": "10108000004280707", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "timezone": "PST" }, "id": "10108000004280707" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/"%}}Create a Cron Using Cron Expressions- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/"%}}Create a Cron Using Cron Expressions- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/"%}}Create a Cron Using Cron Expressions- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a One-Time Cron" description: "This API enables you to create a one-time cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.609Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/" id="CreateaOne-TimeCron" %}} {{%divtag class="LeftContent"%}} # Create a One-Time Cron ### Description This API enables you to create a one-time cron that submits a Job to the Job Pool to trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "OneTime", "cron_status": true, "job_detail": { "time_of_execution": 1717916399, "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "1", "retry_interval": "60" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "oneTimeCronFn", "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ 'https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"OneTime","cron_status":true,"job_detail":{"time_of_execution":1717916399,"timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"1","retry_interval":"60"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893" ,"params":{"param1":"value1"}},"cron_name":"oneTimeCronFn","cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "oneTimeCronFn", "cron_type": "OneTime", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280446", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280444", "source_name": "oneTimeCronFn", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:26 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:26 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "-1", "cron_detail": { "jobId": "10108000004280444", "transactionTimeout": -1, "time_of_execution": 1717916399, "hour": 0, "minute": 0, "second": 0, "timezone": "PST" }, "id": "10108000004280444" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/"%}}Create a One-Time Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/"%}}Create a One-Time Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/"%}}Create a One-Time Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create an Every Cron" description: "This API enables you to create an every recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.610Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/" id="CreateanEveryCron" %}} {{%divtag class="LeftContent"%}} # Create an Every Cron ### Description This API enables you to create a recurring type **Every** cron that at the scheduled time submits a Job to the Job Pool and triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Periodic", "cron_status": true, "job_detail": { "repetition_type": "every", "hour": "6", "minute": "0", "second": "0" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "3", "retry_interval": "60" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "end_time": 1717957799, "cron_name": "RecursiveCron", "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ 'https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Periodic","cron_status":true,"job_detail":{"repetition_type":"every","hour":"6","minute":"0","second":"0"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"3","retry_interval":"60"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"end_time":1717957799,"cron_name":"RecursiveCron","cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "RecursiveCron", "cron_type": "Periodic", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280482", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 3, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280480", "source_name": "RecursiveCron", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:31 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:31 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717957799", "cron_detail": { "jobId": "10108000004280480", "transactionTimeout": -1, "hour": 6, "minute": 0, "second": 0, "repetition_type": "every", "timezone": "Asia/Kolkata" }, "id": "10108000004280480" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a Daily Cron" description: "This API enables you to create an daily recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.610Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-daily-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-daily-cron/" id="CreateaDailyCron" %}} {{%divtag class="LeftContent"%}} # Create a Daily Cron ### Description This API enables you to create a recurring type **daily** cron that at the scheduled time submits a Job to the Job Pool and triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Calendar", "cron_status": true, "job_detail": { "repetition_type": "daily", "hour": "1", "minute": "0", "second": "0", "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "1", "retry_interval": "300" }, "job_name": "job", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "RecursiveCronDaily", "end_time": 1718002799, "description": "dailycron", "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ 'https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Calendar","cron_status":true,"job_detail":{"repetition_type":"daily","hour":"1","minute":"0","second":"0","timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"1","retry_interval":"300"},"job_name":"job","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"RecursiveCronDaily","end_time":1718002799,"description":"dailycron","cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "RecursiveCronDaily", "description": "dailycron", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280518", "url": "", "job_name": "job", "job_config": { "number_of_retries": 1, "retry_interval": 300 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280516", "source_name": "RecursiveCronDaily", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:33 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:33 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718002799", "cron_detail": { "jobId": "10108000004280516", "transactionTimeout": -1, "hour": 1, "minute": 0, "second": 0, "repetition_type": "daily", "timezone": "PST" }, "id": "10108000004280516" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a Monthly Cron (Date Type)" description: "This API enables you to create an monthly recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.610Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-monthly-cron-day/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-monthly-cron-day/" id="CreateaMonthlyCron(DateType)" %}} {{%divtag class="LeftContent"%}} # Create a Monthly Cron (Date Type) ### Description This API enables you to create a recurring type **Monthly** cron (defined using the **calendar date**) that at the scheduled time submits a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} and triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Calendar", "cron_status": true, "job_detail": { "repetition_type": "monthly", "days": [ "1", "3", "8" ], "hour": "3", "minute": "0", "second": "0", "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "2", "retry_interval": "500" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "recurCronMonthly", "end_time": 1718002799, "description": "monthly", "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Calendar","cron_status":true,"job_detail":{"repetition_type":"monthly","days":["1","3","8"],"hour":"3","minute":"0","second":"0","timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"2","retry_interval":"500"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"recurCronMonthly","end_time":1718002799,"description":"monthly","cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronMonthly", "description": "monthly", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280537", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280535", "source_name": "recurCronMonthly", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:35 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:35 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718002799", "cron_detail": { "jobId": "10108000004280535", "transactionTimeout": -1, "hour": 3, "minute": 0, "second": 0, "repetition_type": "monthly", "days": [ 1, 3, 8 ], "timezone": "PST" }, "id": "10108000004280535" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a Monthly Cron (Week Type)" description: "This API enables you to create an monthly recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.610Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-monthly-cron-weekly/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-monthly-cron-weekly/" id="CreateaMonthlyCron(WeekType)" %}} {{%divtag class="LeftContent"%}} # Create a Monthly Cron (Week Type) ### Description This API enables you to create a recurring type **Monthly** cron (defined using the **weeks in a month**) that at the scheduled time submits a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} and triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Calendar", "cron_status": true, "job_detail": { "repetition_type": "monthly", "weeks_of_month": [ "1", "2", "3" ], "week_day": [ "1" ], "hour": "0", "minute": "0", "second": "0", "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "2", "retry_interval": "600" }, "job_name": "job", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "recurCronMonthlyWeek", "description": "week", "end_time": 1718607599, "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Calendar","cron_status":true,"job_detail":{"repetition_type":"monthly","weeks_of_month":["1","2","3"],"week_day":["1"],"hour":"0","minute":"0","second":"0","timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"2","retry_interval":"600"},"job_name":"job","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"recurCronMonthlyWeek","description":"week","end_time":1718607599,"cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronMonthlyWeek", "description": "week", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280565", "url": "", "job_name": "job", "job_config": { "number_of_retries": 2, "retry_interval": 600 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280563", "source_name": "recurCronMonthlyWeek", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:37 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:37 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718607599", "cron_detail": { "jobId": "10108000004280563", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "repetition_type": "monthly", "weeks_of_month": [ 1, 2, 3 ], "week_day": [ 1 ], "timezone": "PST" }, "id": "10108000004280563" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a Yearly Cron (Day Type)" description: "This API enables you to create a yearly recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.610Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-year-cron-date/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-year-cron-date/" id="CreateaYearlyCron(DayType)" %}} {{%divtag class="LeftContent"%}} # Create a Yearly Cron (Day Type) ### Description This API enables you to create a recurring type **Yearly** cron (defined using the **calendar date**), that at the scheduled time will submit a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} and trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Calendar", "cron_status": true, "job_detail": { "repetition_type": "yearly", "months": [ "0", "1" ], "days": [ "1", "2", "3", "6", "8" ], "hour": "0", "minute": "0", "second": "0", "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "1", "retry_interval": "500" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "recurCronYearlyday", "description": "yearlyday", "end_time": 1719125999, "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Calendar","cron_status":true,"job_detail":{"repetition_type":"yearly","months":["0","1"],"days":["1","2","3","6","8"],"hour":"0","minute":"0","second":"0","timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"1","retry_interval":"500"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"recurCronYearlyday","description":"yearlyday","end_time":1719125999,"cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronYearlyday", "description": "yearlyday", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280594", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280592", "source_name": "recurCronYearlyday", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:39 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:39 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1719125999", "cron_detail": { "jobId": "10108000004280592", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "repetition_type": "yearly", "days": [ 1, 2, 3, 6, 8 ], "months": [ 0, 1 ], "timezone": "PST" }, "id": "10108000004280592" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Create a Yearly Cron (Week Type)" description: "This API enables you to create a yearly recurring-type cron that submits a Job to the Job Pool to trigger a Job Function endpoint." last_updated: "2026-03-18T07:41:08.611Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/create-cron/create-year-cron-week/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/create-cron/create-year-cron-week/" id="CreateaYearlyCron(WeekType)" %}} {{%divtag class="LeftContent"%}} # Create a Yearly Cron (Week Type) ### Description This API enables you to create a recurring type **Yearly** cron (defined using the **calendar weeks**) that at the scheduled time will submit a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} and trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}} endpoint. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_type": "Calendar", "cron_status": true, "job_detail": { "repetition_type": "yearly", "months": [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" ], "weeks_of_month": [ "1", "3", "5" ], "week_day": [ "1" ], "hour": "0", "minute": "0", "second": "0", "timezone": "PST" }, "job_meta": { "source_type": "Cron", "job_config": { "number_of_retries": "2", "retry_interval": "1000" }, "job_name": "jobName", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } }, "cron_name": "recurCronYearlyWeek", "description": "abc", "end_time": 1719212399, "cron_execution_type": "pre-defined" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the created cron. The response will also contain the details of the user who created the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_type":"Calendar","cron_status":true,"job_detail":{"repetition_type":"yearly","months":["0","1","2","3","4","5","6","7","8","9","10","11"],"weeks_of_month":["1","3","5"],"week_day":["1"],"hour":"0","minute":"0","second":"0","timezone":"PST"},"job_meta":{"source_type":"Cron","job_config":{"number_of_retries":"2","retry_interval":"1000"},"job_name":"jobName","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}},"cron_name":"recurCronYearlyWeek","description":"abc","end_time":1719212399,"cron_execution_type":"pre-defined"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronYearlyWeek", "description": "abc", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280663", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 1000 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280661", "source_name": "recurCronYearlyWeek", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "created_time": "Jun 07, 2024 12:45 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 07, 2024 12:45 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1719212399", "cron_detail": { "jobId": "10108000004280661", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "repetition_type": "yearly", "months": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], "weeks_of_month": [ 1, 3, 5 ], "week_day": [ 1 ], "timezone": "PST" }, "id": "10108000004280661" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/"%}}Create a Recurring Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} #### Update Cron -------------------------------------------------------------------------------- title: "Update a One-Time Cron" description: "This API enables you to update a one-time cron that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.613Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/" id="UpdateaOne-TimeCron" %}} {{%divtag class="LeftContent"%}} # Update a One-Time Cron ### Description This API enables you to update a **one-time** cron present in the project. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier (name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "oneTimeCronFn", "cron_type": "OneTime", "cron_status": true, "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280446", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280444", "source_name": "oneTimeCronFn", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "time_of_execution": 1718002799, "timezone": "PST" }, "id": "10108000004280444" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280444 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"oneTimeCronFn","cron_type":"OneTime","cron_status":true,"cron_execution_type":"pre-defined","job_meta":{"id":"10108000004280446","job_name":"jobName","job_config":{"number_of_retries":1,"retry_interval":60},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280444","source_name":"oneTimeCronFn","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"time_of_execution":1718002799,"timezone":"PST"},"id":"10108000004280444"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "oneTimeCronFn", "cron_type": "OneTime", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280726", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280444", "source_name": "oneTimeCronFn", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 12:53 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "-1", "cron_detail": { "jobId": "10108000004280444", "transactionTimeout": -1, "time_of_execution": 1718002799, "hour": 0, "minute": 0, "second": 0, "timezone": "PST" }, "id": "10108000004280444" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update an Every Cron" description: "This API enables you to update a recurring type every cron that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.614Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-every-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-every-cron/" id="UpdateanEveryCron" %}} {{%divtag class="LeftContent"%}} # Update an Every Cron ### Description This API enables you to update a recurring type **Every** cron present in the project. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier (name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "RecursiveCronEvery", "cron_type": "Periodic", "cron_status": true, "end_time": 1717957799, "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280482", "job_name": "jobName", "job_config": { "number_of_retries": 3, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280480", "source_name": "RecursiveCron", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "hour": 6, "minute": 0, "second": 0, "repetition_type": "every" }, "id": "10108000004280480" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280480 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"RecursiveCronEvery","cron_type":"Periodic","cron_status":true,"end_time":1717957799,"cron_execution_type":"pre-defined","job_meta":{"id":"10108000004280482","job_name":"jobName","job_config":{"number_of_retries":3,"retry_interval":60},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280480","source_name":"RecursiveCron","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"hour":6,"minute":0,"second":0,"repetition_type":"every"},"id":"10108000004280480"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "RecursiveCronEvery", "cron_type": "Periodic", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280762", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 3, "retry_interval": 60 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280480", "source_name": "RecursiveCronEvery", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 12:56 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717957799", "cron_detail": { "hour": 6, "minute": 0, "second": 0, "repetition_type": "every", "timezone": "Asia/Kolkata" }, "id": "10108000004280480" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update a Daily Cron" description: "This API enables you to update a recurring type daily cron that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.614Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-daily-cron/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-daily-cron/" id="UpdateaDailyCron" %}} {{%divtag class="LeftContent"%}} # Update a Daily Cron ### Description This API enables you to update a **Daily** cron present in the project. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier (name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "RecursiveCronDaily", "description": "dailycron", "cron_type": "Calendar", "cron_status": true, "end_time": 1718002799, "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280518", "job_name": "job", "job_config": { "number_of_retries": 1, "retry_interval": 300 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280516", "source_name": "RecursiveCronDaily", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "hour": "2", "minute": 0, "second": 0, "repetition_type": "daily", "timezone": "PST" }, "id": "10108000004280516" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280516 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"RecursiveCronDaily","description":"dailycron","cron_type":"Calendar","cron_status":true,"end_time":1718002799,"cron_execution_type":"pre-defined","job_meta":{"id":"10108000004280518","job_name":"job","job_config":{"number_of_retries":1,"retry_interval":300},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280516","source_name":"RecursiveCronDaily","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"hour":"2","minute":0,"second":0,"repetition_type":"daily","timezone":"PST"},"id":"10108000004280516"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "RecursiveCronDaily", "description": "dailycron", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280784", "url": "", "job_name": "job", "job_config": { "number_of_retries": 1, "retry_interval": 300 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280516", "source_name": "RecursiveCronDaily", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 12:59 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718002799", "cron_detail": { "jobId": "10108000004280516", "transactionTimeout": -1, "hour": 2, "minute": 0, "second": 0, "repetition_type": "daily", "timezone": "PST" }, "id": "10108000004280516" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update a Monthly Cron (Date Type)" description: "This API enables you to update a recurring type monthly cron that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.615Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-monthly-cron-date/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-monthly-cron-date/" id="UpdateaMonthlyCron(DateType)" %}} {{%divtag class="LeftContent"%}} # Update a Monthly Cron (Date Type) ### Description This API enables you to update a **Monthly** cron (configured using the **calendar dates**) present in the project. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * The functionality of the API remains the same when you try to update a Monthly cron defined using the weeks of a month. Refer to {{%link href="/en/api/code-reference/job-scheduling/cron/create-cron/create-monthly-cron-weekly/#CreateaMonthlyCron%28WeekType%29" %}}Create a Monthly Cron (Week Type) API{{%/link%}}. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier (name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "recurCronMonthly", "description": "monthly", "cron_type": "Calendar", "cron_status": true, "end_time": 1718002799, "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280537", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280535", "source_name": "recurCronMonthly", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "hour": 3, "minute": 0, "second": 0, "repetition_type": "monthly", "days": [ 1, 3, 8, "9" ], "timezone": "PST" }, "id": "10108000004280535" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280535 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"recurCronMonthly","description":"monthly","cron_type":"Calendar","cron_status":true,"end_time":1718002799,"cron_execution_type":"pre-defined","job_meta":{"id":"10108000004280537","job_name":"jobName","job_config":{"number_of_retries":2,"retry_interval":500},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280535","source_name":"recurCronMonthly","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"hour":3,"minute":0,"second":0,"repetition_type":"monthly","days":[1,3,8,"9"],"timezone":"PST"},"id":"10108000004280535"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronMonthly", "description": "monthly", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280805", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280535", "source_name": "recurCronMonthly", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 01:00 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1718002799", "cron_detail": { "jobId": "10108000004280535", "transactionTimeout": -1, "hour": 3, "minute": 0, "second": 0, "repetition_type": "monthly", "days": [ 1, 3, 8, 9 ], "timezone": "PST" }, "id": "10108000004280535" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update a Yearly Cron (Week Type)" description: "This API enables you to update a recurring type yearly cron that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.616Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-yearly-cron-week/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-yearly-cron-week/" id="UpdateaYearlyCron(WeekType)" %}} {{%divtag class="LeftContent"%}} # Update a Yearly Cron (Week Type) ### Description This API enables you to update an **Yearly** cron (defined using the **weeks of a month**) present in the project. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * The functionality of the API remains the same when you try to update an Yearly cron defined using the dates of a month. Refer to {{%link href="/en/api/code-reference/job-scheduling/cron/create-cron/create-year-cron-date/#CreateaYearlyCron%28DayType%29" %}}Create a Yearly Cron (Date Type) API{{%/link%}}. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier(name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "recurCronYearlyWeek", "description": "abc", "cron_type": "Calendar", "cron_status": true, "end_time": 1719212399, "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280663", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 1000 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280661", "source_name": "recurCronYearlyWeek", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "hour": 0, "minute": 0, "second": 0, "repetition_type": "yearly", "months": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], "weeks_of_month": [ 1, 3, 5, "4" ], "week_day": [ 1 ], "timezone": "PST" }, "id": "10108000004280661" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280535 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"recurCronYearlyWeek","description":"abc","cron_type":"Calendar","cron_status":true,"end_time":1719212399,"cron_execution_type":"pre-defined","job_meta":{"id":"10108000004280663","job_name":"jobName","job_config":{"number_of_retries":2,"retry_interval":1000},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280661","source_name":"recurCronYearlyWeek","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"hour":0,"minute":0,"second":0,"repetition_type":"yearly","months":[0,1,2,3,4,5,6,7,8,9,10,11],"weeks_of_month":[1,3,5,"4"],"week_day":[1],"timezone":"PST"},"id":"10108000004280661"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "recurCronYearlyWeek", "description": "abc", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004280844", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 2, "retry_interval": 1000 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280661", "source_name": "recurCronYearlyWeek", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 01:03 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1719212399", "cron_detail": { "jobId": "10108000004280661", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "repetition_type": "yearly", "months": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], "weeks_of_month": [ 1, 3, 4, 5 ], "week_day": [ 1 ], "timezone": "PST" }, "id": "10108000004280661" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update a Cron Defined Using Cron Expressions" description: "This API enables you to update a cron using cron expressions that submits a Job to the Job Pool to trigger an endpoint." last_updated: "2026-03-18T07:41:08.617Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/cron/update-cron/update-cron-cron-expressions/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/cron/update-cron/update-cron-cron-expressions/" id="UpdateaCronDefinedUsingCronExpressions" %}} {{%divtag class="LeftContent"%}} # Update a Cron Defined Using Cron Expressions ### Description This API enables you to update a cron defined using {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}**Cron Expressions**{{%/link%}}. The cron that needs to be updated will be referred using its unique identifier, such as name or ID. {{%note%}}{{%bold%}}Note:{{%/bold%}} * In this API, we are illustrating the sample request and sample response with a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. The API functionality remains the same for webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} jobs. * This API is applicable for {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain/}baas/v1/project/{project_id}/job_scheduling/cron/{cron_identifier(name/ID)}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="cron_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id"%}}unique ID{{%/link%}} of the cron{{%/request_id%}} {{%request_id id="cron_name" data="String" %}}The name of the cron{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.cron.UPDATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "cron_name": "cronExp", "description": "cronexpression", "cron_type": "CronExpression", "cron_status": true, "end_time": 1717916399, "cron_execution_type": "pre-defined", "cron_expression": "/30 /6 * * *", "job_meta": { "id": "10108000004280709", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280707", "source_name": "cronExp", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "params": { "param1": "value1" }, "target_id": "10108000003823893" }, "job_detail": { "timezone": "PST" }, "id": "10108000004280707" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="cron_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote the schedule type of the cron{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_status" textformat="Boolean" condition="mandatory" maxlength=" " %}} Will denote if the cron is enabled or disabled.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_detail" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the details on the job which is being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_meta" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the meta information about the job being submitted by the cron.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type's endpoint is going to be triggered. Can be {{%badge%}}Function{{%/badge%}}, {{%badge%}}Webhook{{%/badge%}}, {{%badge%}}Circuit{{%/badge%}}, or {{%badge%}}AppSail{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Numerical" condition="mandatory" maxlength=" " %}} Will contain the unique ID with which the target type will be referred.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the value of the headers and params you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the cron you are going to create.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="cron_execution_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote if it is a {{%badge%}}pre-defined{{%/badge%}} cron or {{%badge%}}dynamic{{%/badge%}} cron.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the updated cron. The response will also contain the details of the user who updated the cron. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_with_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/cron/10108000004280535 -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"cron_name":"cronExp","description":"cronexpression","cron_type":"CronExpression","cron_status":true,"end_time":1717916399,"cron_execution_type":"pre-defined","cron_expression":"/30 /6 * * *","job_meta":{"id":"10108000004280709","job_name":"jobName","job_config":{"number_of_retries":1,"retry_interval":500},"target_type":"Function","target_details":{"id":"10108000003823893","target_name":"target_function_fetch"},"source_type":"Cron","source_details":{"id":"10108000004280707","source_name":"cronExp","details":{"cron_execution_type":"pre-defined"}},"jobpool_id":"10108000003823563","jobpool_details":{"type":"Function","name":"VendorReminder","created_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"created_time":"May 28, 2024 04:44 PM","modified_by":{"zuid":"77941453","is_confirmed":false,"email_id":"emmy@zylker.com","first_name":"Amelia Burrows","last_name":"","user_type":"Admin","user_id":"10108000000009004"},"modified_time":"May 28, 2024 04:44 PM","capacity":{"memory":"2048"},"project_details":{"project_name":"ZylkerShipments","id":"10108000003823392","project_type":"Live"},"id":"10108000003823563"},"params":{"param1":"value1"},"target_id":"10108000003823893"},"job_detail":{"timezone":"PST"},"id":"10108000004280707"}' {{% /panel_with_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "cronExp", "description": "cronexpression", "cron_type": "CronExpression", "cron_execution_type": "pre-defined", "cron_expression": "/30 /6 * * *", "job_meta": { "id": "10108000004280861", "url": "", "job_name": "jobName", "job_config": { "number_of_retries": 1, "retry_interval": 500 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "Cron", "source_details": { "id": "10108000004280707", "source_name": "cronExp", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "cron_status": true, "modified_time": "Jun 07, 2024 01:04 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "end_time": "1717916399", "cron_detail": { "jobId": "10108000004280866", "transactionTimeout": -1, "hour": 0, "minute": 0, "second": 0, "timezone": "PST" }, "id": "10108000004280707" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/"%}}Update Cron- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/"%}}Update Cron- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} ### Job Pool -------------------------------------------------------------------------------- title: "Get All Job Pools" description: "This API enables you to retrieve details of all the Job Pools present in the project." last_updated: "2026-03-18T07:41:08.618Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/" id="GetAllJobPools" %}} {{%divtag class="LeftContent"%}} # Job Scheduling API {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Scheduling{{%/link%}} is a Catalyst service that allows you to schedule {{%link href="/en/job-scheduling/help/implementation/submit-instant-job/" %}}job submissions{{%/link%}} and execute them in a Job Pool to trigger {{%link href="" %}}Circuits{{%/link%}}, Webhooks (any third-party URL), {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} service's endpoints. # Get All Job Pools ### Description This API enables you to retrieve details of all the Job Pools present in the project. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/jobpool</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.jobpool.READ {{%/scope%}} ### Response Details The JSON response returns the metadata of all the Job Pools present in the project. the response will also contain the details of the user who created and last modified it. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/jobpool -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": [ { "type": "AppSail", "name": "TriggerMicroservice", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:51 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:51 PM", "capacity": { "number": "1" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823795" }, { "type": "Circuit", "name": "InventoryDataMaintaince", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:49 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:49 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823699" }, { "type": "Webhook", "name": "VendorDataFetch", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:47 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:47 PM", "capacity": { "number": "3" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823632" }, { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "capacity": { "memory": "2048" }, "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" } ] } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/"%}}Get All Job Pool- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/"%}}Get All Job Pool- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/"%}}Get All Job Pool- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Get Job Pool by Identifier" description: "This API enables you to retrieve details of a Job Pool present in the project." last_updated: "2026-03-18T07:41:08.618Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/jobpool/get-jobpool/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/jobpool/get-jobpool/" id="GetJobPoolByIdentifier" %}} {{%divtag class="LeftContent"%}} # Get Job Pool by Identifier ### Description This API enables you to retrieve details of a specific {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}}. The Job Pool is referred by its unique Job Pool ID or its name. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/jobpool/{jobpool_identifier}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="jobpool_identifier" data="Numerical or String" %}}The {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id"%}}unique ID{{%/link%}} of the Job Pool, or its name.{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.jobpool.READ {{%/scope%}} ### Response Details The JSON response returns the metadata of a specific corn present in the project. The response will also contain the details of the user who created and last modified it. {{%note%}}{{%bold%}}Note:{{%/bold%}} The above response occurred when we attempted to {{%badge%}}{{%bold%}}GET{{%/bold%}}{{%/badge%}} details of a Job Pool that has a {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Cron{{%/link%}} associated to it. For a {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Cron{{%/link%}}, the response will be similar but the execution_type will contain the value as '{{%badge%}}dynamic{{%/badge%}}'.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/cron/10108000004154323 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "cron_name": "pcMonthlyDay", "cron_type": "Calendar", "cron_execution_type": "pre-defined", "job_meta": { "id": "10108000004154323", "url": "", "job_name": "j", "job_config": { "number_of_retries": 0 }, "target_type": "AppSail", "target_details": { "id": "10108000002976191", "target_name": "appsailTrue" }, "source_type": "Cron", "source_details": { "id": "10108000004154321", "source_name": "pcMonthlyDay", "details": { "cron_execution_type": "pre-defined" } }, "jobpool_id": "10108000002976201", "jobpool_details": { "type": "AppSail", "name": "appsailJP", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "Mar 28, 2024 05:41 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Mar 28, 2024 05:41 PM", "capacity": { "number": "5" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "id": "10108000002976201" }, "request_method": "get" }, "cron_status": true, "created_time": "Jun 04, 2024 04:31 PM", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Jun 04, 2024 04:31 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "end_time": "1718303399", "cron_detail": { "hour": 4, "minute": 4, "second": 4, "repetition_type": "monthly", "days": [ 1, 3, 4 ], "timezone": "Asia/Kolkata" }, "success_count": 0, "failure_count": 0, "id": "10108000004154321" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobpool/get-job-pool/"%}}Get a Specific Job Pool- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/"%}}Get a Specific Job Pool- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobpool/get-job-pool/"%}}Get a Specific Job Pool- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} ### Jobs -------------------------------------------------------------------------------- title: "Get Job By ID" description: "This API enables you to retrieve details of a specific Job." last_updated: "2026-03-18T07:41:08.619Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/get-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/get-job/" id="GetJobByID" %}} {{%divtag class="LeftContent"%}} # Get Job By ID ### Description This API enables you to retrieve details of a specific Job. The Job is referred by its unique {{%badge%}}Job ID{{%/badge%}}. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job/{job_id}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="job_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id"%}}unique ID{{%/link%}} of the Job{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.READ {{%/scope%}} ### Response Details The JSON response returns the metadata of a specific job present in the project. The response will also contain the details of the user who created and last modified it. {{%note%}}{{%bold%}}Note:{{%/bold%}} The sample response is given for a Job that triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. If you attempt to use this API to {{%badge%}}{{%bold%}}GET{{%/bold%}}{{%/badge%}} Jobs that trigger Webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} or {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} services, then the values of {{%badge%}}capacity{{%/badge%}}, {{%badge%}}target{{%/badge%}}, {{%badge%}}request_method{{%/badge%}}, {{%badge%}}target_details{{%/badge%}}, {{%badge%}}params{{%/badge%}}, and {{%badge%}}headers{{%/badge%}} will change accordingly.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/job/10278000000027019 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000003880208", "created_time": "May 29, 2024 02:29 PM", "response_code": "Success", "start_time": { "startTimeToRedirectLogsPage": "29/05/2024 14:24", "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST" }, "end_time": { "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST", "endTimeToRedirectLogsPage": "29/05/2024 14:34" }, "submitted_on": { "startTimeToRedirectLogsPage": "29/05/2024 14:24", "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST" }, "job_status": "SUCCESS", "capacity": { "memory": "256" }, "job_meta_details": { "id": "10108000003880209", "url": "", "job_name": "abc", "job_config": { "number_of_retries": 0 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": {} }, "retried_count": 0, "parent_job_id": "10108000003880208", "execution_time": "633", "status": false, "dispatch_delay": "103" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/get-job/"%}}Get Job Details- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/get-job/"%}}Get Job Details- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/get-job/"%}}Get Job Details- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Delete Job By ID" description: "This API enables you to delete a job present in a Job Pool." last_updated: "2026-03-18T07:41:08.619Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/delete-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/delete-job/" id="DeleteJobByID" %}} {{%divtag class="LeftContent"%}} # Delete Job by ID ### Description This API enables you to delete a job present in a Job Pool. The Job is referred by its {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}{{%badge%}}job_id{{%/badge%}}{{%/link%}}. ### Request Details #### Request URL {{%request class="apired" req="DELETE" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job/{job_id}</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="job_id" data="Numerical" %}}The {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id"%}}unique ID{{%/link%}} of the Job{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.DELETE {{%/scope%}} ### Response Details The JSON response returns the metadata of the deleted job. The response will also contain the details of the user who deleted the job. {{%note%}}{{%bold%}}Note:{{%/bold%}} The sample response is given for a Job that triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. If you attempt to use this API to {{%badge%}}{{%bold%}}DELETE{{%/bold%}}{{%/badge%}} Jobs that trigger Webhook, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}} or {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} services, then the values of {{%badge%}}capacity{{%/badge%}}, {{%badge%}}target{{%/badge%}}, {{%badge%}}request_method{{%/badge%}}, {{%badge%}}target_details{{%/badge%}}, {{%badge%}}params{{%/badge%}}, and {{%badge%}}headers{{%/badge%}} will change accordingly.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X DELETE https://api.catalyst.zoho.com/baas/v1/project/10278000000019013/job_scheduling/job/10278000000027019 -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57” {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10278000000027019", "created_time": "May 29, 2024 02:29 PM", "response_code": "Success", "start_time": { "startTimeToRedirectLogsPage": "29/05/2024 14:24", "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST" }, "end_time": { "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST", "endTimeToRedirectLogsPage": "29/05/2024 14:34" }, "submitted_on": { "startTimeToRedirectLogsPage": "29/05/2024 14:24", "timeWithGivenTimezone": "May 29, 2024 02:29 PM IST", "timeWithJobTimezone": "May 29, 2024 02:29 PM IST" }, "job_status": "SUCCESS", "capacity": { "memory": "256" }, "job_meta_details": { "id": "10278000000027019", "url": "", "job_name": "abc", "job_config": { "number_of_retries": 0 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": {} }, "retried_count": 0, "parent_job_id": "10108000003880208", "execution_time": "633", "status": false, "dispatch_delay": "103" } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/delete-job/"%}}Delete Job- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/delete-job/"%}}Delete Job- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/delete-job/"%}}Delete Job- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} #### Submit Job -------------------------------------------------------------------------------- title: "Submit Webhook Job By ID" description: "This API enables you to submit a job to a Job Pool that triggers a Webhook endpoint." last_updated: "2026-03-18T07:41:08.620Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/" id="SubmitWebhookJobByID" %}} {{%divtag class="LeftContent"%}} # Submit Webhook Job By ID ### Description This API enables you to submit a job to a Job Pool that triggers a Webhook endpoint. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "request_method": "post", "source_type": "API", "job_config": { "number_of_retries": "2", "retry_interval": 1800 }, "job_name": "webhookPost", "jobpool_id": "10108000003823632", "target_type": "Webhook", "url": "https://www.zoho.com", "headers": { "h1": "v1" }, "request_body": "{'key1':'val1'}" } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="request_method" textformat=" " condition="mandatory" maxlength=" " %}} This denotes the request method the webhook will be triggered with, and the values can be {{%badge%}}get{{%/badge%}}, {{%badge%}}post{{%/badge%}}, {{%badge%}}put{{%/badge%}}, {{%badge%}}delete{{%/badge%}}, {{%badge%}}head{{%/badge%}}, or {{%badge%}}patch{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="source_type" textformat=" " condition="mandatory" maxlength=" " %}} Will always contain API as its value for submit job API.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_config" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the key value pairs {{%badge%}}number_of_retries{{%/badge%}}, and {{%badge%}}retry_interval{{%/badge%}}. This will determine the retry action in the event of a failure.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}}Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="url" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the URL of the webhook the job is going to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="headers" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the value of the headers you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the value of the params you pass while submitting the job.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the submitted job. The response will also contain the details of the user who submitted the job. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/{project_id}/job_scheduling/job -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw $'{"request_method":"post","source_type":"API","job_config":{"number_of_retries":"2","retry_interval":1800},"job_name":"webhookPost","jobpool_id":"10108000003823632","target_type":"Webhook","url":"https://www.zoho.com","headers":{"h1":"v1"},"request_body":"{\'key1\':\'val1\'}"}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000004194125", "created_time": "Jun 05, 2024 04:37 PM", "response_code": null, "start_time": {}, "end_time": {}, "submitted_on": { "startTimeToRedirectLogsPage": "05/06/2024 16:32", "timeWithGivenTimezone": "Jun 05, 2024 04:37 PM IST", "timeWithJobTimezone": "Jun 05, 2024 04:37 PM IST" }, "job_status": "PENDING", "capacity": { "number": "1" }, "job_meta_details": { "id": "10108000004194126", "url": "https://www.zoho.com", "job_name": "webhookPost", "job_config": { "number_of_retries": 2, "retry_interval": 1800 }, "target_type": "Webhook", "target_details": { "target_name": "https://www.zoho.com" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000003823632", "jobpool_details": { "type": "Webhook", "name": "VendorDataFetch", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:47 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:47 PM", "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823632" }, "headers": { "h1": "v1" }, "params": {}, "request_method": "post", "request_body": "{'key1':'val1'}" }, "retried_count": null, "parent_job_id": "10108000004194125", "execution_time": null } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/create-job/"%}}Create Job- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/"%}}Create Job- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/create-job/"%}}Create Job- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Submit a Function Job by ID" description: "This API enables you to submit a job to a Job Pool that triggers a Job Function endpoint." last_updated: "2026-03-18T07:41:08.620Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/" id="SubmitaFunctionJobByID" %}} {{%divtag class="LeftContent"%}} # Submit a Function Job by ID ### Description This API enables you to submit a job to a Job Pool that triggers a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function endpoint{{%/link%}}. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "source_type": "API", "job_config": { "number_of_retries": "2", "retry_interval": 10800 }, "job_name": "functionJob", "jobpool_id": "10108000003823563", "target_type": "Function", "target_id": "10108000003823893", "params": { "param1": "value1" } } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="request_method" textformat=" " condition="mandatory" maxlength=" " %}} This denotes the request method the webhook will be triggered with, and the values can be {{%badge%}}get{{%/badge%}}, {{%badge%}}post{{%/badge%}}, {{%badge%}}put{{%/badge%}}, {{%badge%}}delete{{%/badge%}}, {{%badge%}}head{{%/badge%}}, or {{%badge%}}patch{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="source_type" textformat=" " condition="mandatory" maxlength=" " %}} Will always contain API as its value for submit job API.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_config" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the key value pairs {{%badge%}}number_of_retries{{%/badge%}}, and {{%badge%}}retry_interval{{%/badge%}}. This will determine the retry action in the event of a failure.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}}Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Number" condition="mandatory" maxlength=" " %}} Will contain the unique ID of the Job Function the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the value of the params you pass while submitting the job.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the submitted job. The response will also contain the details of the user who submitted the job. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ 'https://api.catalyst.zoho.com/baas/v1/project/10108000003823392/job_scheduling/job -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"source_type":"API","job_config":{"number_of_retries":"2","retry_interval":10800},"job_name":"functionJob","jobpool_id":"10108000003823563","target_type":"Function","target_id":"10108000003823893","params":{"param1":"value1"}}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000004194195", "created_time": "Jun 05, 2024 04:51 PM", "response_code": null, "start_time": {}, "end_time": {}, "submitted_on": { "startTimeToRedirectLogsPage": "05/06/2024 16:46", "timeWithGivenTimezone": "Jun 05, 2024 04:51 PM IST", "timeWithJobTimezone": "Jun 05, 2024 04:51 PM IST" }, "job_status": "PENDING", "capacity": { "memory": "512" }, "job_meta_details": { "id": "10108000004194196", "url": "", "job_name": "functionJob", "job_config": { "number_of_retries": 2, "retry_interval": 10800 }, "target_type": "Function", "target_details": { "id": "10108000003823893", "target_name": "target_function_fetch" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000003823563", "jobpool_details": { "type": "Function", "name": "VendorReminder", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:44 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:44 PM", "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823563" }, "headers": {}, "params": { "param1": "value1" } }, "retried_count": null, "parent_job_id": "10108000004194195", "execution_time": null } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/create-job/"%}}Create Job- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/"%}}Create Job- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/create-job/"%}}Create Job- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Submit a Circuit Job By ID" description: "This API enables you to submit a job to a Job Pool that triggers a Circuit's endpoint." last_updated: "2026-03-18T07:41:08.620Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/submit-job/submit-circuit-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/submit-job/submit-circuit-job/" id="SubmitaCircuitJobByID" %}} {{%divtag class="LeftContent"%}} # Submit a Circuit Job By ID ### Description This API enables you to submit a job to a Job Pool that triggers a {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuit{{%/link%}}'s endpoint. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "source_type": "API", "job_config": { "number_of_retries": "4", "retry_interval": 300 }, "job_name": "circuitJob", "jobpool_id": "10108000003823699", "target_type": "Circuit", "target_id": "10108000004194246", "test_cases": { "key1": "value1", "key2": "value2", "key3": "value3" } } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="request_method" textformat=" " condition="mandatory" maxlength=" " %}} This denotes the request method the webhook will be triggered with, and the values can be {{%badge%}}get{{%/badge%}}, {{%badge%}}post{{%/badge%}}, {{%badge%}}put{{%/badge%}}, {{%badge%}}delete{{%/badge%}}, {{%badge%}}head{{%/badge%}}, or {{%badge%}}patch{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="source_type" textformat=" " condition="mandatory" maxlength=" " %}} Will always contain API as its value for submit job API.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_config" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the key value pairs {{%badge%}}number_of_retries{{%/badge%}}, and {{%badge%}}retry_interval{{%/badge%}}. This will determine the retry action in the event of a failure.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}}Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Number" condition="mandatory" maxlength=" " %}} Will contain the unique ID of the Circuit the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="test_cases" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the JSON key value pair input you need to feed to the Circuit.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the submitted job. The response will also contain the details of the user who submitted the job. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/{project_id}/job_scheduling/job -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"source_type":"API","job_config":{"number_of_retries":"4","retry_interval":300},"job_name":"circuitJob","jobpool_id":"10108000003823699","target_type":"Circuit","target_id":"10108000004194246","test_cases":{"key1":"value1","key2":"value2","key3":"value3"}}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000004194251", "created_time": "Jun 05, 2024 04:56 PM", "response_code": null, "start_time": {}, "end_time": {}, "submitted_on": { "startTimeToRedirectLogsPage": "05/06/2024 16:51", "timeWithGivenTimezone": "Jun 05, 2024 04:56 PM IST", "timeWithJobTimezone": "Jun 05, 2024 04:56 PM IST" }, "job_status": "PENDING", "capacity": { "number": "1" }, "job_meta_details": { "id": "10108000004194252", "job_name": "circuitJob", "job_config": { "number_of_retries": 4, "retry_interval": 300 }, "target_type": "Circuit", "target_details": { "id": "10108000004194246", "target_name": "abc" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000003823699", "jobpool_details": { "type": "Circuit", "name": "InventoryDataMaintaince", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "May 28, 2024 04:49 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "May 28, 2024 04:49 PM", "project_details": { "project_name": "ZylkerShipments", "id": "10108000003823392", "project_type": "Live" }, "id": "10108000003823699" }, "headers": {}, "params": { "key1": "value1", "key2": "value2", "key3": "value3" } }, "retried_count": null, "parent_job_id": "10108000004194251", "execution_time": null } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/create-job/"%}}Create Job- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/"%}}Create Job- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/create-job/"%}}Create Job- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Submit an AppSail Job By ID" description: "This API enables you to submit a job to a Job Pool that triggers a AppSail service's endpoint." last_updated: "2026-03-18T07:41:08.621Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/job-scheduling/job/submit-job/submit-appsail-job/" service: "Job Scheduling" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/job-scheduling/job/submit-job/submit-appsail-job/" id="SubmitanAppSailJobByID" %}} {{%divtag class="LeftContent"%}} # Submit an AppSail Job By ID ### Description This API enables you to submit a job to a Job Pool that triggers a AppSail service's endpoint. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/job_scheduling/job</p>{{%/request%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br>{{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.job.CREATE {{%/scope%}} #### Request JSON You must send a JSON with its corresponding values as shown below. {{% panel_with_adjustment header="Sample Payload" class="language-json line-numbers"%}} { "request_method": "get", "source_type": "API", "job_config": { "number_of_retries": "3", "retry_interval": 300 }, "job_name": "appsailJob", "jobpool_id": "10108000002976201", "target_type": "AppSail", "target_id": "10108000002976191", "url": "", "headers": { "h1": "k1" }, "params": { "p1": "v1" } } {{% /panel_with_adjustment %}} You will feed this **Request JSON** to your **Request Body**, and you need to provide the value of: {{% nested_fields children="open" border="yes" expandable="no" title="request_method" textformat=" " condition="mandatory" maxlength=" " %}} This denotes the request method the webhook will be triggered with, and the values can be {{%badge%}}get{{%/badge%}}, {{%badge%}}post{{%/badge%}}, {{%badge%}}put{{%/badge%}}, {{%badge%}}delete{{%/badge%}}, {{%badge%}}head{{%/badge%}}, or {{%badge%}}patch{{%/badge%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="source_type" textformat=" " condition="mandatory" maxlength=" " %}} Will always contain API as its value for submit job API.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_config" textformat="JSON" condition="mandatory" maxlength=" " %}} Will contain the key value pairs {{%badge%}}number_of_retries{{%/badge%}}, and {{%badge%}}retry_interval{{%/badge%}}. This will determine the retry action in the event of a failure.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_type" textformat="String" condition="mandatory" maxlength=" " %}} Will denote which target type the job is meant to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="jobpool_id" textformat="Numerical" condition="mandatory" maxlength=" " %}}Will contain the {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}Job Pool ID{{%/link%}} of the job pool that will execute the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="job_name" textformat="String" condition="mandatory" maxlength=" " %}} Will contain the name of the job you are required to trigger.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="target_id" textformat="Number" condition="mandatory" maxlength=" " %}} Will contain the ID of the target the Job is meant to trigger. For example, since this is a AppSail Job, the target ID will the {{%link href="/en/serverless/help/appsail/console/overview/" %}}AppSail Service's ID{{%/link%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="url" textformat="String" condition="optional" maxlength=" " %}} Will contain the url of the AppSail service.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="headers" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the value of the headers you pass while submitting the job.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="params" textformat="JSON" condition="optional" maxlength=" " %}} Will contain the value of the params you pass while submitting the job.{{% /nested_fields %}} ### Response Details The JSON response returns the metadata of the submitted job. The response will also contain the details of the user who submitted the job. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/{project_id}/job_scheduling/job -H "Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57" -H "Content-Type:application/json" -\-data-raw '{"request_method":"get","source_type":"API","job_config":{"number_of_retries":"3","retry_interval":300},"job_name":"appsailJob","jobpool_id":"10108000002976201","target_type":"AppSail","target_id":"10108000002976191","url":"","headers":{"h1":"k1"},"params":{"p1":"v1"}}' {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "job_id": "10108000004194320", "created_time": "Jun 05, 2024 05:02 PM", "response_code": null, "start_time": {}, "end_time": {}, "submitted_on": { "startTimeToRedirectLogsPage": "05/06/2024 16:57", "timeWithGivenTimezone": "Jun 05, 2024 05:02 PM IST", "timeWithJobTimezone": "Jun 05, 2024 05:02 PM IST" }, "job_status": "PENDING", "capacity": { "number": "1" }, "job_meta_details": { "id": "10108000004194321", "url": "", "job_name": "appsailJob", "job_config": { "number_of_retries": 3, "retry_interval": 300 }, "target_type": "AppSail", "target_details": { "id": "10108000002976191", "target_name": "appsailTrue" }, "source_type": "API", "source_details": { "source_name": "API" }, "jobpool_id": "10108000002976201", "jobpool_details": { "type": "AppSail", "name": "appsailJP", "created_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "created_time": "Mar 28, 2024 05:41 PM", "modified_by": { "zuid": "77941453", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "", "user_type": "Admin", "user_id": "10108000000009004" }, "modified_time": "Mar 28, 2024 05:41 PM", "project_details": { "project_name": "AppsailCron", "id": "10108000002976144", "project_type": "Live" }, "id": "10108000002976201" }, "headers": { "h1": "k1" }, "params": { "p1": "v1" }, "request_method": "get" }, "retried_count": null, "parent_job_id": "10108000004194320", "execution_time": null } } {{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/job-scheduling/jobs/create-job/"%}}Create Job- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/"%}}Create Job- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/job-scheduling/jobs/create-job/"%}}Create Job- Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} --- ## SDK — Java — Job Scheduling -------------------------------------------------------------------------------- title: "Overview" description: "This page describes the methods to perform Job Scheduling operations" last_updated: "2026-03-18T07:41:08.657Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Job Scheduling SDK Job Scheduling is a Catalyst service that allows you to schedule job submissions and execute them in a Job Pool to trigger {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, Webhooks(any third-party URL), {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} service's endpoints. Using the Catalyst SDK, you can perform the following operations through code: <table class="content-table"> <thead> <tr> <th class="w25p">Job Scheduling Component</th> <th class="w75p">Operations Possible Using SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>{{%link href="/en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/" %}}Get All Job Pool{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/jobpool/get-job-pool/" %}}Get a Specific Job Pool{{%/link%}}</td> </tr> <tr> <td>Job</td> <td>{{%link href="/en/sdk/java/v1/job-scheduling/jobs/create-job/" %}}Create Job{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/jobs/get-job/" %}}Get Job Details{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/jobs/delete-job/" %}}Delete a Job{{%/link%}}</td> </tr> <tr> <td>Cron</td> <td>{{%link href="/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/" %}}Create a One-Time Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/" %}}Create a Recurring Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/" %}}Create Cron Using Cron Expressions{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/get-cron-details/" %}}Get Details of a Particular Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/get-all-cron-details/" %}}Get Details of All Crons{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/update-cron/" %}}Update Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/pause-cron/" %}}Pause Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/resume-cron/" %}}Resume Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/run-cron/" %}}Run Cron{{%/link%}}<br />{{%link href="/en/sdk/java/v1/job-scheduling/cron/delete-cron/" %}}Delete Cron{{%/link%}}</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Initialize Job Scheduling Instance" description: "This page describes the method to create a component reference for the Job Scheduling service." last_updated: "2026-03-18T07:41:08.657Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/) - Python SDK (/en/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Initialize Job Scheduling Instance You can create a {{%link href="/en/job-scheduling/" %}}Job Scheduling{{%/link%}} component reference as shown below. This will not fire a server-side call. We will refer to this component instance in various code snippets of working with Job Scheduling's components. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.ZCJobScheduling;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // get job scheduling instance{{%/code%}} ### Cron -------------------------------------------------------------------------------- title: "Create a One-Time Cron" description: "This page describes the Java method to create a one-time cron with sample code snippets." last_updated: "2026-03-18T07:41:08.657Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Create a One-Time Cron The {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}} component is used to schedule the submission of a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. Using the following SDK, you will be able to create a cron that will schedule a job submission only once. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is written for a job that will trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. To make the SDK compatible for the other types, you need to replace the value with proper {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}{{%bold%}}Job Pool ID{{%/bold%}}{{%/link%}}, or {{%bold%}}Job Pool Name{{%/bold%}}, and provide the appropriate {{%bold%}}Target Name{{%/bold%}}, or {{%bold%}}Target ID{{%/bold%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // generate cron details ZCCronDetails oneTimeCronDetails = ZCCronBuilder.zcOneTimeCronBuilder() // get one time cron builder .setCronStatus(true) // set cron as enabled .cronConfig((System.currentTimeMillis() / 1000) + (60 * 60), "America/Los_Angeles") // set the execution time as UNIX timestamp in seconds .setJobMeta(jobMeta) // set job meta (modify based on the job) .setCronName("one_time_cron") // set cron name (unique) .setCronDescription("one_time_cron") // set corn description (optional) .build(); // build cron details // create one time cron ZCCronDetails oneTimeCron = jobScheduling.cron.createCron(oneTimeCronDetails);{{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Recurring Cron" description: "This page describes the Java method to create a recurring cron with sample code snippets." last_updated: "2026-03-18T07:41:08.657Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Create a Recurring Cron Using the following SDK, you will be able to create a recurring cron that can be executed at various time-period intervals. The intervals can range from a minute to entire calendar years. {{%tabs%}} {{%tab "Every Cron" %}} ### Create an Every Cron The following SDK can be used to create a recurring cron that will submit a job to the job pool at a scheduled interval that is less than **24Hrs**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to {{%link href="/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/#SubmitaFunctionJobByID" %}}submit a job{{%/link%}} every {{%bold%}}2Hrs 1Mins and 3secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}setTime(){{%/badge%}} method.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // EVERY CRON => which will be run for every 2hrs 1min and 3sec // generate cron details ZCCronDetails everyCronDetails = ZCCronBuilder.zcEveryCronBuilder() // get every cron builder .setCronStatus(true) // set cron as enabled .setTime(2, 1, 3) // set the repetition interval .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("every_cron") // set cron name (unique) .setCronDescription("every_cron") // set corn description (optional) .build(); // build cron details // create every cron ZCCronDetails everyCron = jobScheduling.cron.createCron(everyCronDetails); {{%/code%}} {{%/tab%}} {{%tab "Daily Cron" %}} <br> ### Create a Daily Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed time at a **daily interval**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron on {{%bold%}}0Hr 0Min 0Sec{{%/bold%}} every single day. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}setTime(){{%/badge%}} method.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // DAILY CRON => which will be run on 0hrs 0mins and 0sec daily // generate cron details ZCCronDetails dailyCronDetails = ZCCronBuilder.zcDailyCronBuilder() // get daily cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed // .setTimezone("America/Los_Angeles") // set the timezone (optional) .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("daily_cron") // set cron name (unique) .setCronDescription("daily_cron") // set corn description (optional) .build(); // build cron details // create daily cron ZCCronDetails dailyCron = jobScheduling.cron.createCron(dailyCronDetails); {{%/code%}} {{%/tab%}} {{%tab "Monthly Cron" %}} <br> ### Create a Monthly Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a **monthly interval**. Additionally, you also have the option to submit a job at a monthly interval but on a particular week. If you choose to schedule the cron to execute at a monthly interval on a date-based schedule, then the range of possible dates, based on the **month**, will be **1-31**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool {{%bold%}}every month{{%/bold%}} on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}3rd{{%/bold%}}, and {{%bold%}}5th{{%/bold%}} at {{%bold%}}0Hrs,0Mins, 0Secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}setTime(){{%/badge%}} method.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%note%}}{{%bold%}}Note:{{%/bold%}} In the following SDK snippet, if you comment out the lines {{%badge%}}.setWeeksOfMonth(1, 3){{%/badge%}} and {{%badge%}}.setDayOfTheWeek(1, 2){{%/badge%}}, and comment in code lines {{%badge%}}.setTime(0, 0, 0){{%/badge%}} and {{%badge%}}.setDays(1, 3, 5){{%/badge%}}, then the cron will be scheduled to submit a job to the job pool every month on the 1st and 2nd days of the 1st and 3rd week of a month.{{%/note%}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // MONTHLY CRON => which will be run on 0hrs 0mins 0sec on 1st 3rd and 5th days of every month // generate cron details ZCCronDetails monthlyCronDetails = ZCCronBuilder.zcMonthlyCronBuilder() // get monthly cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed .setDays(1, 3, 5) // set the days of the month (day based config) // .setWeeksOfMonth(1, 3) // set the weeks of the month (either week based or day based config is necessary) // .setDayOfTheWeek(1, 2) // set the days of the week (either week based or day based config is necessary) // .setTimezone("America/Los_Angeles") // set the timezone (optional) .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("monthly_cron") // set cron name (unique) .setCronDescription("monthly_cron") // set corn description (optional) .build(); // build cron details // create monthly cron ZCCronDetails monthlyCron = jobScheduling.cron.createCron(monthlyCronDetails); {{%/code%}} {{%/tab%}} {{%tab "Yearly Cron" %}} <br> ### Create a Yearly Cron The following SDK can be used to schedule a cron to{{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a fixed month on a **yearly** interval. Additionally, you also have the option to submit a job at a yearly interval but on a particular week. If you choose to schedule the cron to execute at a **yearly** interval on a **date-based** schedule, then the range of possible dates, based on the **month**, will be **1-31**, and the **month** will be determined based on the range of values **1-12**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}2nd{{%/bold%}}, and {{%bold%}}3rd{{%/bold%}} on the {{%bold%}}8th month{{%/bold%}} of {{%bold%}}every year{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}setTime(){{%/badge%}} method.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // YEARLY CRON => which will be run on 0hrs 0min 0sec on 1st 2nd 3rd days of the 8th month of a year // generate cron details ZCCronDetails yearlyCronDetails = ZCCronBuilder.zcYearlyCronBuilder() // get yearly cron builder .setCronStatus(true) // set cron as enabled .setTime(0, 0, 0) // set the time of the day during which the cron should be executed .setDays(1, 2, 3) // set the days of the month // .setWeeksOfMonth(1) // set the weeks of the month (either week based or day based config is necessary) // .setDayOfTheWeek(3) // set the days of the week (either week based or day based config is necessary) .setMonths(8) // set the months // .setTimezone("America/Los_Angeles") // set the timezone (optional) .setJobMeta(jobMeta) // set the job meta (modify based on the job) .setCronName("yearly_cron") // set cron name (unique) .setCronDescription("yearly_cron") // set corn description (optional) .build(); // build cron details // create yearly cron ZCCronDetails yearlyCron = jobScheduling.cron.createCron(yearlyCronDetails); {{%/code%}} {{%/tab%}} {{%/tabs%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Cron Using Cron Expressions" description: "This page describes the Java method to create a cron defined using Cron Expressions with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Create a Cron Using Cron Expressions Use this SDK to implement crons to schedule the submission of jobs to job pools. However, the configuration of the cron will be defined using regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the following SDK, the cron has been configured using Cron Expressions, to submit a job to the job pool on {{%bold%}}0Hrs 0Mins 0Secs{{%/bold%}} on {{%bold%}}every 1st day of the week{{%/bold%}} on the {{%bold%}}1st month of every year{{%/bold%}}.{{%/link%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setJobpoolName("functions_jobpool") // set the name of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) // .setJobpoolId(1234567890L) // set the Id of the function jobpool (optional) (either jobpoolId or jobpoolName is mandatory) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // generate cron details ZCCronDetails expressionCronDetails = ZCCronBuilder.zcExpressionCronBuilder() // get expression corn builder .setCronStatus(true) // set cron as enabled .setCronExpression("0 0 * 1 1") // set the UNIX cron expression // .setTimezone("America/Los_Angeles") // set the timezone (optional) .setCronName("expression_cron") // set cron name .setCronDescription("expression_cron") // set corn description (optional) .setJobMeta(jobMeta) // set job meta .build(); // build cron details // create expression cron ZCCronDetails expressionCron = jobScheduling.cron.createCron(expressionCronDetails); {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Get Details of a Particular Cron" description: "This page describes the Java method to get details of a particular cron with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/get-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Get Details of a Particular Cron Use the following SDK to get all available details of a particular {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}**Pre-Defined Cron**{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}**Dynamic Cron**{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or the name of the cron to {{%badge%}}getCron(){{%/badge%}} SDK method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCCronDetails cronA = jobScheduling.cron.getCron(12378634912l); // get cron details with cron id ZCCronDetails cronB = jobScheduling.cron.getCron("test_cron"); // get cron details with cron name {{%/code%}} -------------------------------------------------------------------------------- title: "Get Details of All Crons" description: "This page describes the Java method to get the details of all the cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Get Details of All Crons The following SDK will allow you to get all available information on all {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} using the {{%badge%}}getCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} This method will only fetch you details of Pre-Defined Crons. This method will not work for {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import java.util.List; import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}List&lt;ZCCronDetails&gt; allCrons = jobScheduling.cron.getCron(); // get all cron details {{%/code%}} -------------------------------------------------------------------------------- title: "Update Cron" description: "This page describes the Java method to update a cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/update-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Update Cron The following SDK can be used to update a particular cron's details. You can use this SDK to update the name, description and target. You can select your required cron by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} to {{%badge%}}getCron(){{%/badge%}} method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCCronDetails cron = jobScheduling.cron.getCron(12378634912l); // get cron with cron Id cron.setCronName("test_cron"); // set new cron name ZCCronDetails updatedCronA = jobScheduling.cron.updateCron(12378634912l, cron); // update cron with cron Id updatedCronA.setCronName("updated_test_cron"); ZCCronDetails updatedCronB = jobScheduling.cron.updateCron("test_cron", cron); // update cron with cron name {{%/code%}} -------------------------------------------------------------------------------- title: "Pause Cron" description: "This page describes the Java method to pause a cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/pause-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/pause-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Pause Cron This SDK method can be used to temporarily halt a cron from submitting a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name of the cron you wish to pause to the {{%badge%}}pauseCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCCronDetails pausedCronA = jobScheduling.cron.pauseCron(123456789l); // pause cron with corn id ZCCronDetails pausedCronB = jobScheduling.cron.pauseCron("test_cron"); // pause cron with cron name {{%/code%}} -------------------------------------------------------------------------------- title: "Resume Cron" description: "This page describes the Java method to resume a paused cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/resume-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/resume-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Resume Cron This SDK method can be used to resume the operations of a cron that had been previously paused. This can be done by passing the paused {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}resumeCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCCronDetails resumedCronA = jobScheduling.cron.resumeCron(123456789l); // resume cron with cron id ZCCronDetails resumedCronB = jobScheduling.cron.resumeCron("test_cron"); // resume cron with cron name {{%/code%}} -------------------------------------------------------------------------------- title: "Run Cron" description: "This page describes the Java method to execute a cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.658Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/run-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/run-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Run Cron This SDK can be used to {{%link href="/en/job-scheduling/help/cron/introduction/" %}}execute a cron{{%/link%}}. The cron once executed will immediately submit the associated {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}runCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.job.ZCJobDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCJobDetails runCronA = jobScheduling.cron.runCron(123456789l); // run cron with cron id ZCJobDetails runCronB = jobScheduling.cron.runCron("test_cron"); // run cron with cron name {{%/code%}} -------------------------------------------------------------------------------- title: "Delete Cron" description: "This page describes the Java method to delete a cron in the project with sample code snippets." last_updated: "2026-03-18T07:41:08.659Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/delete-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/delete-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Delete Cron This SDK method can be used to delete a particular {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}deleteCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.cron.ZCCronDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCCronDetails deletedCronA = jobScheduling.cron.deleteCron(123456789l); // delete cron with cron Id ZCCronDetails deletedCronB = jobScheduling.cron.deleteCron("test_cron"); // delete cron with cron name {{%/code%}} ### Job Pool -------------------------------------------------------------------------------- title: "Get All Job Pool" description: "This page describes the Java method to get all the job pools present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.659Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Get All Job Pool Using the following SDK, you will be able to get all the available details on all of the available {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pools{{%/link%}}. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import java.util.ArrayList; import com.zc.component.jobscheduling.beans.jobpool.ZCJobpoolDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ArrayList&lt;ZCJobpoolDetails&gt; jobpools = jobScheduling.getJobpool(); // get all jobpool {{%/code%}} -------------------------------------------------------------------------------- title: "Get a Specific Job Pool" description: "This page describes the Java method to get a specific job pool present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.659Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Get a Specific Job Pool Using the following SDK, you will be able to get the details of a particular Job Pool by either passing the name or the ID of the Job Pool to the {{%badge%}}getJobpool(){{%/badge%}} SDK method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.jobpool.ZCJobpoolDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCJobpoolDetails jobpoolA = jobScheduling.getJobpool("test_jobpool"); // get jobpool with jobpool name ZCJobpoolDetails jobpoolB = jobScheduling.getJobpool(1234567889L); // get jobpool with jobpool Id{{%/code%}} ### Jobs -------------------------------------------------------------------------------- title: "Create Job" description: "This page describes the Java method to create a Job with sample code snippets." last_updated: "2026-03-18T07:41:08.659Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/create-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Create Job Using the following SDK method, you can create and submit Jobs to trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, Webhooks, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} services. You can also pass optional arguments in the form of JSON key value pairs. SDK snippet to create and submit Job to trigger: {{%tabs%}} {{%tab "Job Function" %}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}// generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .setJobpoolName("test") // set the name of the Function jobpool to which the job should be submitted .build(); // build job meta // submit function job ZCJobDetails functionJob = jobScheduling.job.submitJob(jobMeta); {{%/code%}} {{%/tab%}} {{%tab "Circuit" %}} **Ensure the following packages are imported:** {{%code class="language-java"%}} import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; {{%/code%}} {{%code class="language-java"%}} // generate circuit job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.circuitJobBuilder() // create circuit job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_circuit") // set target circuits's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target circuits's Id (optional) (either TargetName or TargetId is mandatory) .setCircuitInput(new JSONObject() { { put("key1", "value1"); put("key2", "value2"); } }) // set the test cases for the circuit .setJobName("test_job") // set job name .setJobpoolName("test") // set the name of the Circuit jobpool where the job should be submitted .build(); // build circuit job meta // submit circuit job ZCJobDetails circuitJob = jobScheduling.job.submitJob(jobMeta); {{%/code%}} {{%/tab%}} {{%tab "Webhook" %}} **Ensure the following packages are imported:** {{%code class="language-java"%}} import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; {{%/code%}} {{%code class="language-java"%}} // generate webhook job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.webhookJobBuilder() // create web hook job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setRequestMethod("POST") // set web hook request's method .setUrl("https://catalyst.zoho.com") // set web hook request's url .setParams(new JSONObject() { { put("arg1", "test"); put("arg2", "job"); } }) // set the web hook request's query params (optional) .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the web hook request's headers (optional) .setRequestBody("test_request") // set the web hook request's body (optional) .setJobName("test_job") // set job name .setJobpoolName("test") // set the name of the Webhook jobpool to which the job should be submitted .build(); // build web hook job meta // submit web hook job ZCJobDetails webHookJob = jobScheduling.job.submitJob(jobMeta); {{%/code%}} {{%/tab%}} {{%tab "AppSail" %}} **Ensure the following packages are imported:** {{%code class="language-java"%}} import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; {{%/code%}} {{%code class="language-java"%}} // generate appsail job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.appSailJobBuilder() // create appsail job builder .setJobConfig(2, 15 * 60 l) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("test_appsail") // set appsail name .setRequestMethod("POST") // set appsail request method .setUrl("/test") // set appsail request url .setParams(new JSONObject() { { put("arg1", "value1"); put("arg2", "value2"); } }) // set appsail request query params .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the appsail request's headers (optional) .setRequestBody("test_request") // set the appsail request's body (optional) .setJobName("test_job") // set job name .setJobpoolName("test") // set the name of the AppSail jobpool to which the job should be submitted .build(); // build appsail job meta // submit appsail job ZCJobDetails appSailJob = jobScheduling.job.submitJob(jobMeta); {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Get Job Details" description: "This page describes the Java method to get all available details about a Job with sample code snippets." last_updated: "2026-03-18T07:41:08.659Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/get-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/get-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Get Job Details Using the following SDK method, you will be able to get all available details about a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that has been submitted to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}{{%badge%}}Job Id{{%/badge%}}{{%/link%}} to the {{%badge%}}getJob(){{%/badge%}} SDK method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.job.ZCJobDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCJobDetails fetchedJob = jobScheduling.job.getJob(1234567890L); // get job with job Id {{%/code%}} -------------------------------------------------------------------------------- title: "Delete a Job" description: "This page describes the Java method to delete a Job with sample code snippets." last_updated: "2026-03-18T07:41:08.660Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/delete-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/delete-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Delete a Job Using the following SDK method, you will be able to delete a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that is in the process of being executed in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the Job Id to the {{%badge%}}deleteJob(){{%/badge%}} SDK method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.jobscheduling.beans.job.ZCJobDetails;{{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCJobDetails deletedJob = jobScheduling.job.deleteJob(1234567890L); // delete job with job Id {{%/code%}} --- ## SDK — Node JS — Job Scheduling -------------------------------------------------------------------------------- title: "Overview" description: "This page describes the methods to perform Job Scheduling operations" last_updated: "2026-03-18T07:41:08.663Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Python SDK (/en/sdk/python/v1/job-scheduling/overview/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Job Scheduling SDK Job Scheduling is a Catalyst service that allows you to schedule job submissions and execute them in a Job Pool to trigger {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, Webhooks(any third-party URL), {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} service's endpoints. Using the Catalyst SDK, you can perform the following operations through code: <table class="content-table"> <thead> <tr> <th class="w25p">Job Scheduling Component</th> <th class="w75p">Operations Possible Using SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>{{%link href="/en/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/" %}}Get All Job Pool{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/" %}}Get a Specific Job Pool{{%/link%}}</td> </tr> <tr> <td>Job</td> <td>{{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/" %}}Create Job{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/get-job/" %}}Get Job Details{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/jobs/delete-job/" %}}Delete a Job{{%/link%}}</td> </tr> <tr> <td>Cron</td> <td>{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/" %}}Create a One-Time Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/" %}}Create a Recurring Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/" %}}Create Cron Using Cron Expressions{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/" %}}Get Details of a Particular Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/" %}}Get Details of All Crons{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/" %}}Update Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/pause-cron/" %}}Pause Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/resume-cron/" %}}Resume Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/run-cron/" %}}Run Cron{{%/link%}}<br />{{%link href="/en/sdk/nodejs/v2/job-scheduling/cron/delete-cron/" %}}Delete Cron{{%/link%}}</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Initialize Job Scheduling Instance" description: "This page describes the method to create a component reference for the Job Scheduling service." last_updated: "2026-03-18T07:41:08.663Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/) - Python SDK (/en/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Initialize Job Scheduling Instance You can create a {{%link href="/en/job-scheduling/" %}}Job Scheduling{{%/link%}} component reference as shown below. This will not fire a server-side call. We will refer to this component instance in various code snippets of working with Job Scheduling's components. {{%code class="language-javascript" scroll="set-scroll" %}}const jobScheduling = app.jobScheduling(); // get job scheduling instance{{%/code%}} ### Cron -------------------------------------------------------------------------------- title: "Create a One-Time Cron" description: "This page describes the Node.js method to create a one-time cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.664Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Create a One-Time Cron The {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}} component is used to schedule the submission of a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. Using the following SDK, you will be able to create a cron that will schedule a job submission only once. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is written for a job that will trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. To make the SDK compatible for the other types, you need to replace the value with proper {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}{{%bold%}}Job Pool ID{{%/bold%}}{{%/link%}}, or {{%bold%}}Job Pool Name{{%/bold%}}, and provide the appropriate {{%bold%}}Target Name{{%/bold%}}, or {{%bold%}}Target ID{{%/bold%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create one time cron details const oneTimeCron = { cron_name: 'one_time', // set a name for the cron (unique) description: 'one_time_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'OneTime', // set the cron type as OneTime cron_detail: { time_of_execution: Math.floor(Date.now() / 1000) + (60 * 60) + '', // set the execution time as UNIX timestamp // timezone: 'America/Los_Angeles' // set the timezone (optional) }, job_meta: jobMeta // set the function job meta }; // create one time cron const cronDetails = await jobScheduling.CRON.createCron(oneTimeCron);{{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Recurring Cron" description: "This page describes the Node.js method to create a recurring cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.664Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Create a Recurring Cron Using the following SDK, you will be able to create a recurring cron that can be executed at various time-period intervals. The intervals can range from a minute to entire calendar years. {{%tabs%}} {{%tab "Every Cron" %}} ### Create an Every Cron The following SDK can be used to create a recurring cron that will submit a job to the job pool at a scheduled interval that is less than **24Hrs**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to {{%link href="/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/#SubmitaFunctionJobByID" %}}submit a job{{%/link%}} every {{%bold%}}2Hrs 1Mins and 3secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory)jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create every cron details const everyCron = { cron_name: 'every_cron', // set a name for the cron (unique) description: 'every_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'Periodic', // set the cron type as Periodic for every cron cron_detail: { hour: 2, // set the hour interval of the repetition minute: 1, // set the minute interval of the repetition second: 3, // set the second interval of the repetition repetition_type: "every" // set the repetition type as every for every cron }, job_meta: jobMeta // set the function job meta }; // create every cron const everyCronDetails = await jobScheduling.CRON.createCron(everyCron); {{%/code%}} {{%/tab%}} {{%tab "Daily Cron" %}} <br> ### Create a Daily Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed time at a **daily interval**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron on {{%bold%}}0Hr 0Min 0Sec{{%/bold%}} every single day. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create daily cron details const dailyCron = { cron_name: 'daily_cron', // set a name for the cron (unique) description: 'daily_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed repetition_type: 'daily', // set the repetition type as daily for daily cron // timezone: 'America/Los_Angeles' // set the timezone (optional) }, job_meta: jobMeta // set the function job meta }; // create daily cron const dailyCronDetails = await jobScheduling.CRON.createCron(dailyCron); {{%/code%}} {{%/tab%}} {{%tab "Monthly Cron" %}} <br> ### Create a Monthly Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a **monthly interval**. Additionally, you also have the option to submit a job at a monthly interval but on a particular week. If you choose to schedule the cron to execute at a monthly interval on a date-based schedule, then the range of possible dates, based on the **month**, will be **1-31**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool {{%bold%}}every month{{%/bold%}} on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}3rd{{%/bold%}}, and {{%bold%}}5th{{%/bold%}} at {{%bold%}}0Hrs,0Mins, 0Secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create monthly cron details const monthlyCron = { cron_name: 'monthly_cron', // set a name for the cron (unique) description: 'monthly_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed days: [1, 3, 5], // set the days of the month in which the cron should be executed // week_day: [1, 3], // set the days of the week in a month during which the cron should be executed // weeks_of_month: [2], // set the weeks of the month during which the cron should be executed repetition_type: 'monthly', // set the repetition type as monthly for monthly cron // timezone: 'America/Los_Angeles' // set the timezone (optional) }, job_meta: jobMeta // set function job meta }; // create monthly cron const monthlyCronDetails = await jobScheduling.CRON.createCron(monthlyCron); {{%/code%}} {{%/tab%}} {{%tab "Yearly Cron" %}} <br> ### Create a Yearly Cron The following SDK can be used to schedule a cron to{{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a fixed month on a **yearly** interval. Additionally, you also have the option to submit a job at a yearly interval but on a particular week. If you choose to schedule the cron to execute at a **yearly** interval on a **date-based** schedule, then the range of possible dates, based on the **month**, will be **1-31**, and the **month** will be determined based on the range of values **1-12**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}2nd{{%/bold%}}, and {{%bold%}}3rd{{%/bold%}} on the {{%bold%}}8th month{{%/bold%}} of {{%bold%}}every year{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create yearly cron details const yearlyCron = { cron_name: 'yearly_cron', // set a name for the cron (unique) description: 'yearly_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'Calendar', // set the cron type as Calendar for daily, monthly and yearly cron_detail: { hour: 0, // set the hour of the day in which the cron should be executed minute: 0, // set the minute of the day in which the cron should be executed second: 0, // set the second of the day in which the cron should be executed days: [1, 2, 3], // set the days of the month in which the cron should be executed // week_day: [1, 3], // set the days of the week in a month during which the cron should be executed // weeks_of_month: [2], // set the weeks of the month during which the cron should be executed months: [8], // set the months of the year in which the cron should be executed repetition_type: 'yearly', // set the repetition type as yearly for yearly cron // timezone: 'America/Los_Angeles' // set the timezone (optional) }, job_meta: jobMeta // set function job meta }; // create yearly cron const yearlyCronDetails = await jobScheduling.CRON.createCron(yearlyCron); {{%/code%}} {{%/tab%}} {{%/tabs%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Cron Using Cron Expressions" description: "This page describes the Node.js method to create a cron using Cron Expressions in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.665Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Create a Cron Using Cron Expressions Use this SDK to implement crons to schedule the submission of jobs to job pools. However, the configuration of the cron will be defined using regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the following SDK, the cron has been configured using Cron Expressions, to submit a job to the job pool on {{%bold%}}0Hrs 0Mins 0Secs{{%/bold%}} on {{%bold%}}every 1st day of the week{{%/bold%}} on the {{%bold%}}1st month of every year{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_expression{{%/badge%}} JSON key-value pair.{{%/link%}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job meta const jobMeta = { job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) jobpool_name: 'test', // set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) // jobpool_id: '1234567890' // set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval }, // set job config - job retries => 2 retries in 15 mins (optional) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) }; // create expression cron details const expressionCron = { cron_name: 'expression_cron', // set a name for the cron (unique) description: 'expression_cron', // set a description for the cron (optional) cron_status: true, // set the cron status as enabled cron_type: 'CronExpression', // set the cron type as Calendar for daily, monthly and yearly cron_expression: '0 0 * 1 1', // set the cron expression // timezone: 'America/Los_Angeles', // set the timezone (optional) cron_detail: {}, // set the cron details job_meta: jobMeta // set function job meta }; // create expression cron const expressionCronDetails = await jobScheduling.CRON.createCron(expressionCron);{{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Get Details of a Particular Cron" description: "This page describes the Node.js method to get details of a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.665Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/get-cron-details/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/get-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Get Details of a Particular Cron Use the following SDK to get all available details of a particular {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}**Pre-Defined Cron**{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}**Dynamic Cron**{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or the name of the cron to {{%badge%}}getCron(){{%/badge%}} SDK method. {{%code class="language-javascript" scroll="set-scroll" %}}const cronDetailsWithName = await jobScheduling.CRON.getCron('test_cron'); // get cron with cron name const cronDetailsWithId = await jobScheduling.CRON.getCron('1234567890'); // get cron with cron Id{{%/code%}} -------------------------------------------------------------------------------- title: "Get Details of All Crons" description: "This page describes the Node.js method to get details of all crons in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.665Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/get-all-cron-details/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Get Details of All Crons The following SDK will allow you to get all available information on all {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} using the {{%badge%}}getCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} This method will only fetch you details of Pre-Defined Crons. This method will not work for {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const allCrons = await jobScheduling.CRON.getAllCron(); // get all cron{{%/code%}} -------------------------------------------------------------------------------- title: "Update Cron" description: "This page describes the Node.js method to update a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.665Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/update-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/update-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Update Cron The following SDK can be used to update a particular cron's details. You can use this SDK to update the name, description and target. You can select your required cron by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} to the {{%badge%}}getCron(){{%/badge%}} method, and update the details using the {{%badge%}}updateCron(){{%/badge%}} method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const cron = await jobScheduling.CRON.getCron('test_cron'); // get cron cron.cron_name = 'test'; const updatedCronDetailsWithName = await jobScheduling.CRON.updateCron('test_cron', cron); // update cron details with cron name updatedCronDetailsWithName.cron_name = 'test_new'; const updatedCronDetailsWithId = await jobScheduling.CRON.updateCron('1234567890', updatedCronDetailsWithName); // update cron details with cron id{{%/code%}} -------------------------------------------------------------------------------- title: "Pause Cron" description: "This page describes the Node.js method to pause a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.665Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/job-scheduling/help/jobpool/introduction/) - Python SDK (/en/job-scheduling/help/jobpool/introduction/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Pause Cron This SDK method can be used to temporarily halt a cron from submitting a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name of the cron you wish to pause to the {{%badge%}}pauseCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const pausedCronWithName = await jobScheduling.CRON.pauseCron('test_cron'); // pause cron with cron name const pausedCronWithId = await jobScheduling.CRON.pauseCron('1234567890'); // pause cron with cron Id{{%/code%}} -------------------------------------------------------------------------------- title: "Resume Cron" description: "This page describes the Node.js method to resume a paused cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.666Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/resume-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/resume-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Resume Cron This SDK method can be used to resume the operations of a cron that had been previously paused. This can be done by passing the paused {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}resumeCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const resumedCronWithName = await jobScheduling.CRON.resumeCron('test_cron'); // resume cron with cron name const resumedCronWithId = await jobScheduling.CRON.resumeCron('1234567890'); // resume cron with cron Id{{%/code%}} -------------------------------------------------------------------------------- title: "Run Cron" description: "This page describes the Node.js method to execute a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.666Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/run-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/run-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/submit-cron-now/#SubmitCronInstantly) -------------------------------------------------------------------------------- # Run Cron This SDK can be used to {{%link href="/en/job-scheduling/help/cron/introduction/" %}}execute a cron{{%/link%}}. The cron once executed will immediately submit the associated {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}runCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const jobA = await jobScheduling.CRON.runCron('test_cron'); // run cron with cron name const jobB = await jobScheduling.CRON.runCron('1234567890'); // run cron with cron Ids{{%/code%}} -------------------------------------------------------------------------------- title: "Delete Cron" description: "This page describes the Node.js method to delete a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.666Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/delete-cron/) - Python SDK (/en/sdk/python/v1/job-scheduling/cron/delete-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Delete Cron This SDK method can be used to delete a particular {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}deleteCron(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}const deletedCronWithName = await jobScheduling.CRON.deleteCron('test_cron'); // delete cron with name const deletedCronWithId = await jobScheduling.CRON.deleteCron('1234567890'); // delete cron with Id{{%/code%}} ### Job Pool -------------------------------------------------------------------------------- title: "Get All Job Pools' Details" description: "This page describes the Node.js method to get all the job pools present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.667Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Get All Job Pools' Details Using the following SDK, you will be able to get all the available details on all of the available {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pools{{%/link%}}. {{%code class="language-javascript" scroll="set-scroll" %}}const allJobpools = await jobScheduling.getAllJobpool(); // get all jobpool's details{{%/code%}} -------------------------------------------------------------------------------- title: "Get Specific Job Pool's Details" description: "This page describes the Node.js method to get the details of a specific job pool in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.667Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobpool/get-job-pool/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Get Specific Job Pool's Details Using the following SDK, you will be able to get the details of a particular Job Pool by either passing the name or the ID of the Job Pool to the {{%badge%}}getJobpool(){{%/badge%}} SDK method. {{%code class="language-javascript" scroll="set-scroll" %}}const jobpoolWithName = await jobScheduling.getJobpool('test'); // get jobpool with jobpool name const jobpoolWithId = await jobScheduling.getJobpool('123456789'); // get jobpool with jobpool Id{{%/code%}} ### Jobs -------------------------------------------------------------------------------- title: "Create Job" description: "This page describes the Node.js method to get all the job pools present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.668Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/create-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/create-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Create Job Using the following SDK method, you can create and submit Jobs to trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, Webhooks, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} services. You can also pass optional arguments in the form of JSON key value pairs. SDK snippet to create and submit Job to trigger: {{%tabs%}} {{%tab "Job Function" %}} {{%code class="language-javascript" scroll="set-scroll" %}}// create function job const functionJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // set a name for the job jobpool_name: 'test', // set the name of the Function jobpool where the job should be submitted target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/code%}} {{%/tab%}} {{%tab "Circuit" %}} {{%code class="language-javascript" scroll="set-scroll" %}}// create circuit job const circuitJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // set a name for the job jobpool_name: 'test', // set the name of the Circuit jobpool where the job should be submitted target_type: 'Circuit', // set the target type as Circuit for circuit jobs target_name: 'target_circuit', // set the target circuit's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target circuit's Id (optional) (either target_id or target_name is mandatory) test_cases: { arg1: "job", arg2: "test" }, // set the circuit test cases job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/code%}} {{%/tab%}} {{%tab "Webhook" %}} {{%code class="language-javascript" scroll="set-scroll" %}}// create webhook job const webhookJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // set a name for the job jobpool_name: 'test', // set the name of the Webhook jobpool where the job should be submitted target_type: 'Webhook', // set the target type as Webhook for webhook jobs request_method: 'POST', // set the webhook request's method url: 'https://catalyst.zoho.com', // set the webhook request's url params: { arg1: 'test', arg2: 'job' }, // set the webhook request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the webhook request's headers (optional) request_body: 'test_request', // set the webhook request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); {{%/code%}} {{%/tab%}} {{%tab "AppSail" %}} {{%code class="language-javascript" scroll="set-scroll" %}}// create appsail job const appsailJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // set a name for the job jobpool_name: 'test', // set the name of the AppSail jobpool where the job should be submitted target_type: 'AppSail', // set the target type as AppSail for appsail jobs target_name: 'target_appsail', // set the target appsail's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target appsail's Id (optional) (either target_id or target_name is mandatory) request_method: 'POST', // set the appsail request's method url: '/test', // set the appsail's url path (optional) params: { arg1: 'test', arg2: 'job' }, // set the appsail request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the appsail request's headers (optional) request_body: 'test_request', // set the appsail request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) });{{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Get Job Details" description: "This page describes the Node.js method to get job details with sample code snippets." last_updated: "2026-03-18T07:41:08.668Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/get-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/get-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Get Job Details Using the following SDK method, you will be able to get all available details about a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that has been submitted to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}{{%badge%}}Job Id{{%/badge%}}{{%/link%}} to the {{%badge%}}getJob(){{%/badge%}} SDK method. {{%code class="language-python" scroll="set-scroll" %}}const job = await jobScheduling.JOB.getJob('1234567890'); // get job details with job Id{{%/code%}} -------------------------------------------------------------------------------- title: "Delete Job" description: "This page describes the Node.js method to delete a job with sample code snippets." last_updated: "2026-03-18T07:41:08.669Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/delete-job/) - Python SDK (/en/sdk/python/v1/job-scheduling/jobs/delete-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Delete Job Using the following SDK method, you will be able to delete a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that is in the process of being executed in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the Job Id to the {{%badge%}}deleteJob(){{%/badge%}} SDK method. {{%code class="language-javascript" scroll="set-scroll" %}}const deletedJob = await jobScheduling.JOB.deleteJob('1234567890'); // delete job with job Id{{%/code%}} --- ## SDK — Python — Job Scheduling -------------------------------------------------------------------------------- title: "Overview" description: "This page describes the methods to perform Job Scheduling operations" last_updated: "2026-03-18T07:41:08.670Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/overview/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Job Scheduling SDK Job Scheduling is a Catalyst service that allows you to {{%link href="/en/job-scheduling/help/cron/introduction/" %}}schedule job submissions{{%/link%}} and execute them in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pool{{%/link%}} to trigger {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, Webhooks (any third-party URL), {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}AppSail{{%/link%}} service's endpoints. Using the Catalyst SDK, you can perform the following operations through code: <table class="content-table"> <thead> <tr> <th class="w25p">Job Scheduling Component</th> <th class="w75p">Operations Possible Using SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>{{%link href="/en/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/" %}}Get All Job Pool{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/jobpool/get-job-pool/" %}}Get a Specific Job Pool{{%/link%}}</td> </tr> <tr> <td>Job</td> <td>{{%link href="/en/sdk/python/v1/job-scheduling/jobs/create-job/" %}}Create Job{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/jobs/get-job/" %}}Get Job Details{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/jobs/delete-job/" %}}Delete a Job{{%/link%}}</td> </tr> <tr> <td>Cron</td> <td>{{%link href="/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/" %}}Create a One-Time Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/" %}}Create a Recurring Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/" %}}Create Cron Using Cron Expressions{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/get-cron-details/" %}}Get Details of a Particular Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/get-all-cron-details/" %}}Get Details of All Crons{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/update-cron/" %}}Update Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/pause-cron/" %}}Pause Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/resume-cron/" %}}Resume Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/run-cron/" %}}Run Cron{{%/link%}}<br />{{%link href="/en/sdk/python/v1/job-scheduling/cron/delete-cron/" %}}Delete Cron{{%/link%}}</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Initialize Job Scheduling Instance" description: "This page describes the method to create a component reference for the Job Scheduling service." last_updated: "2026-03-18T07:41:08.671Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Initialize Job Scheduling Instance You can create a {{%link href="/en/job-scheduling/" %}}Job Scheduling{{%/link%}} component reference as shown below. This will not fire a server-side call. We will refer to this component instance in various code snippets of working with Job Scheduling's components. {{%code class="language-python" scroll="set-scroll" %}}job_scheduling = app.job_scheduling() # get job scheduling instance{{% /code%}} ### Cron -------------------------------------------------------------------------------- title: "Create a One-Time Cron" description: "This page describes the Python method to create a one-time cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.671Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/key-concepts/#schedule-type) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-one-time-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Create a One-Time Cron The {{%link href="/en/job-scheduling/help/cron/introduction/" %}}Cron{{%/link%}} component is used to schedule the submission of a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. Using the following SDK, you will be able to create a cron that will schedule a job submission only once. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is written for a job that will trigger a {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Function{{%/link%}}. To make the SDK compatible for the other types, you need to replace the value with proper {{%link href="/en/job-scheduling/help/jobpool/key-concepts/#job-pool-id" %}}{{%bold%}}Job Pool ID{{%/bold%}}{{%/link%}}, or {{%bold%}}Job Pool Name{{%/bold%}}, and provide the appropriate {{%bold%}}Target Name{{%/bold%}}, or {{%bold%}}Target ID{{%/bold%}}.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}}# create function job meta job_meta = { "job_name": "test_job", # set a name for the job "target_type": "Function", # set the target type as Function for function jobs "target_name": "target_function", # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) "jobpool_name": "test", # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) "params": { "arg1": "test", "arg2": "job", }, # set params to be passed to target function (optional) } # create one time cron one_time_cron = job_scheduling.CRON.create( { "cron_name": "one_time", # set a name for the cron (unique) "description": "one_time_cron", # set the cron description (optional) "cron_status": True, # set the cron status as enabled "cron_type": "OneTime", # set the cron type as OneTime "cron_detail": { "time_of_execution": int(time.time()) + (60 * 10 * 1000), # set the execution time as UNIX timestamp # 'timezone': 'America/Los_Angeles' # set the timezone (optional) }, "job_meta": job_meta, # set the function job meta } ){{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Recurring Cron" description: "This page describes the Python method to create a recurring cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.671Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/key-concepts/#schedule-type) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-recurring-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Create a Recurring Cron Using the following SDK, you will be able to create a recurring cron that can be executed at various time-period intervals. The intervals can range from a minute to entire calendar years. {{%tabs%}} {{%tab "Every Cron" %}} ### Create an Every Cron The following SDK can be used to create a recurring cron that will submit a job to the job pool at a scheduled interval that is less than **24Hrs**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to {{%link href="/en/api/code-reference/job-scheduling/job/submit-job/submit-function-job/#SubmitaFunctionJobByID" %}}submit a job{{%/link%}} every {{%bold%}}2Hrs 1Mins and 3secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}} # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # create every cron every_cron = job_scheduling.CRON.create({ 'cron_name': 'every_cron', # set a name for the cron (unique) 'description': 'every_cron', # set the cron description (optional) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Periodic', # set the cron type as Periodic for every cron 'cron_detail': { 'hour': 2, # set the hour interval of the repetition 'minute': 1, # set the minute interval of the repetition 'second': 3, # set the second interval of the repetition 'repetition_type': 'every' # set the repetition type as every for every cron }, 'job_meta': job_meta # set the function job meta }) {{%/code%}} {{%/tab%}} {{%tab "Daily Cron" %}} <br> ### Create a Daily Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed time at a **daily interval**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron on {{%bold%}}0Hr 0Min 0Sec{{%/bold%}} every single day. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}}# create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } daily_cron = job_scheduling.CRON.create({ 'cron_name': 'daily_cron', # set a name for the cron (unique) 'description': 'daily_cron', # set the cron description (optional) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Calendar', # set the cron type as Calendar for daily, monthly and yearly 'cron_detail': { 'hour': 0, # set the hour of the day in which the cron should be executed 'minute': 0, # set the minute of the day in which the cron should be executed 'second': 0, # set the second of the day in which the cron should be executed 'repetition_type': 'daily', # set the repetition type as daily for daily cron # 'timezone': 'America/Los_Angeles' # set the timezone (optional) }, 'job_meta': job_meta # set the function job meta }) {{%/code%}} {{%/tab%}} {{%tab "Monthly Cron" %}} <br> ### Create a Monthly Cron The following SDK can be used to schedule a cron to {{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a **monthly interval**. Additionally, you also have the option to submit a job at a monthly interval but on a particular week. If you choose to schedule the cron to execute at a monthly interval on a date-based schedule, then the range of possible dates, based on the **month**, will be **1-31**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool {{%bold%}}every month{{%/bold%}} on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}3rd{{%/bold%}}, and {{%bold%}}5th{{%/bold%}} at {{%bold%}}0Hrs,0Mins, 0Secs{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}} # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # create monthly cron monthly_cron = job_scheduling.CRON.create({ 'cron_name': 'monthly_cron', # set a name for the cron (unique) 'description': 'monthly_cron', # set the cron description (optional) 'cron_status': True, # set the cron status as enabled 'cron_type': 'Calendar', # set the cron type as Calendar for daily, monthly and yearly 'cron_detail': { 'hour': 0, # set the hour of the day in which the cron should be executed 'minute': 0, # set the minute of the day in which the cron should be executed 'second': 0, # set the second of the day in which the cron should be executed 'days': [1, 3, 5], # set the days of the month in which the cron should be executed # 'week_day': [1, 3], # set the days of the week in a month during which the cron should be executed # 'weeks_of_month': [2], # set the weeks of the month during which the cron should be executed 'repetition_type': 'monthly', # set the repetition type as monthly for monthly cron # 'timezone': 'America/Los_Angeles' # set the timezone (optional) }, 'job_meta': job_meta # set function job meta }) {{%/code%}} {{%/tab%}} {{%tab "Yearly Cron" %}} <br> ### Create a Yearly Cron The following SDK can be used to schedule a cron to{{%link href="/en/job-scheduling/help/implementation/submit-jobs-using-jobs/" %}}submit a job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job pool{{%/link%}} at a fixed date, and time at a fixed month on a **yearly** interval. Additionally, you also have the option to submit a job at a yearly interval but on a particular week. If you choose to schedule the cron to execute at a **yearly** interval on a **date-based** schedule, then the range of possible dates, based on the **month**, will be **1-31**, and the **month** will be determined based on the range of values **1-12**. Similarly, if you choose a **week-based** interval, then the range can either be from **1-4**, and the particular **days of the week** will be in the range of **1-7**. {{%note%}}{{%bold%}}Note:{{%/bold%}} The following SDK is configured to execute the cron that will submit a job to the job pool on the {{%bold%}}1st{{%/bold%}}, {{%bold%}}2nd{{%/bold%}}, and {{%bold%}}3rd{{%/bold%}} on the {{%bold%}}8th month{{%/bold%}} of {{%bold%}}every year{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_detail{{%/badge%}} JSON key-value pair.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}} # create function job meta job_meta = { "job_name": "test_job", # set a name for the job "target_type": "Function", # set the target type as Function for function jobs "target_name": "target_function", # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) "jobpool_name": "test", # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) "params": { "arg1": "test", "arg2": "job", }, # set params to be passed to target function (optional) } # create yearly cron yearly_cron = job_scheduling.CRON.create( { "cron_name": "yearly_cron", # set a name for the cron (unique) "description": "yearly_cron", # set the cron description (optional) "cron_status": True, # set the cron status as enabled "cron_type": "Calendar", # set the cron type as Calendar for daily, monthly and yearly "cron_detail": { "hour": 0, # set the hour of the day in which the cron should be executed "minute": 0, # set the minute of the day in which the cron should be executed "second": 0, # set the second of the day in which the cron should be executed "days": [ 1, 2, 3, ], # set the days of the month in which the cron should be executed # 'week_day': [1, 3], # set the days of the week in a month during which the cron should be executed # 'weeks_of_month': [2], # set the weeks of the month during which the cron should be executed "months": [ 8 ], # set the months of the year in which the cron should be executed "repetition_type": "yearly", # set the repetition type as yearly for yearly cron # 'timezone': 'America/Los_Angeles' # set the timezone (optional) }, "job_meta": job_meta, # set function job meta } ){{%/code%}} {{%/tab%}} {{%/tabs%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Create a Cron Using Cron Expressions" description: "This page describes the Python method to create a cron using Cron Expressions in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Create a Cron Using Cron Expressions Use this SDK to implement crons to schedule the submission of jobs to job pools. However, the configuration of the cron will be defined using regex-like expressions called {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-expressions" %}}Cron Expressions{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the following SDK, the cron has been configured using Cron Expressions, to submit a job to the job pool on {{%bold%}}0Hrs 0Mins 0Secs{{%/bold%}} on {{%bold%}}every 1st day of the week{{%/bold%}} on the {{%bold%}}1st month of every year{{%/bold%}}. You can change this value as per your requirement by passing the relevant value to the {{%badge%}}cron_expression{{%/badge%}} JSON key-value pair.{{%/link%}} {{%code class="language-python" scroll="set-scroll" %}} # create function job meta job_meta = { 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'jobpool_name': 'test', # set the name of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) # 'jobpool_id': '1234567890' # set the Id of the function jobpool (optional) (either jobpool_name or jobpool_id is mandatory) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) 'params': { 'arg1': 'test', 'arg2': 'job' } # set params to be passed to target function (optional) } # create expression cron expression_cron = job_scheduling.CRON.create({ 'cron_name': 'expression_cron', # set a name for the cron (unique) 'description': 'expression_cron', # set the cron description (optional) 'cron_status': True, # set the cron status as enabled 'cron_type': 'CronExpression', # set the cron type as Calendar for daily, monthly and yearly 'cron_expression': '0 0 * 1 1', # set the cron expression # 'timezone': 'America/Los_Angeles', # set the timezone (optional) 'cron_detail': {}, # set the cron details 'job_meta': job_meta # set function job meta }) {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} We urge you to use this SDK to configure only {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}. Use the {{%italics%}}UI Builder{{%/italics%}} to configure {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-defined Crons{{%/link%}}.{{%/note%}} -------------------------------------------------------------------------------- title: "Get Details of a Particular Cron" description: "This page describes the Python method to get details of a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/get-cron-details/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Get Details of a Particular Cron Use the following SDK to get all available details of a particular {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}**Pre-Defined Cron**{{%/link%}} or {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}**Dynamic Cron**{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or the name of the cron to the {{%badge%}}get(){{%/badge%}} SDK method. {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}cron = job_scheduling.CRON.get('1234567890') # get cron with cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}cron = job_scheduling.CRON.get('test') # get cron with cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Get Details of All Crons" description: "This page describes the Python method to get details of all the crons in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/get-all-cron-details/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Get Details of All Crons The following SDK will allow you to get all available information on all {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} using the {{%badge%}}get_all(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} This method will only fetch you details of Pre-Defined Crons. This method will not work for {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}}all_cron = job_scheduling.CRON.get_all() # get all static cron {{%/code%}} -------------------------------------------------------------------------------- title: "Update Cron" description: "This page describes the Python method to update a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/update-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/update-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Update Cron The following SDK can be used to update a particular cron's details. You can use this SDK to update the name, description and target. You can select your required cron by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} to the {{%badge%}}get(){{%/badge%}} method, and update the details using the {{%badge%}}update(){{%/badge%}} method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}cron = job_scheduling.CRON.get('test') # get cron with cron name cron.&#95;&#95;setitem&#95;&#95;('cron_name', 'test_new_name') # set cron name updated_cron = job_scheduling.CRON.update('1234567890', cron) # updating cron name with cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}cron = job_scheduling.CRON.get('test') # get cron with cron name cron.&#95;&#95;setitem&#95;&#95;('cron_name', 'test_name') # set cron name updated_cron = job_scheduling.CRON.update('test', cron) # updating cron name with the existing cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Pause Cron" description: "This page describes the Python method to pause a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/pause-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/pause-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Pause Cron This SDK method can be used to temporarily halt a cron from submitting a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name of the cron you wish to pause to the {{%badge%}}pause(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}paused_cron = job_scheduling.CRON.pause('1234567890') # disable a cron with the cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}paused_cron = job_scheduling.CRON.pause('test_cron') # disable a cron with the cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Resume Cron" description: "This page describes the Python method to resume a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/resume-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/resume-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Resume Cron This SDK method can be used to resume the operations of a cron that had been previously {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}paused{{%/link%}}. This can be done by passing the paused {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}resume(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}resumed_cron = job_scheduling.CRON.resume('1234567890') # enable a cron with the cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}resumed_cron = job_scheduling.CRON.resume('test_cron') # enable a cron with the cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Run Cron" description: "This page describes the Python method to execute a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/run-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/run-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Run Cron This SDK can be used to {{%link href="/en/job-scheduling/help/cron/introduction/" %}}execute a cron{{%/link%}}. The cron once executed will immediately submit the associated {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} to the {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}run(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}job = job_scheduling.CRON.run('1234567890') # run cron with cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}job = job_scheduling.CRON.run('test_cron') # run cron with cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Delete Cron" description: "This page describes the Python method to delete a cron in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.672Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/cron/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/cron/delete-cron/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/cron/delete-cron/) - REST API Collection (/en/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Delete Cron This SDK method can be used to delete a particular {{%link href="/en/job-scheduling/help/cron/introduction/" %}}cron{{%/link%}}. This can be done by passing the {{%link href="/en/job-scheduling/help/cron/key-concepts/#cron-id" %}}{{%badge%}}cron id{{%/badge%}}{{%/link%}} or name to the {{%badge%}}delete(){{%/badge%}} SDK method. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can use this method to update details of both {{%link href="/en/job-scheduling/help/implementation/submit-job-predefined-cron/" %}}Pre-Defined Crons{{%/link%}} and {{%link href="/en/job-scheduling/help/implementation/submit-job-dynamic-cron/" %}}Dynamic Crons{{%/link%}}.{{%/note%}} {{%tabs%}} {{%tab "Using Cron ID" %}} {{%code class="language-python" scroll="set-scroll" %}}deleted_cron = job_scheduling.CRON.delete('1234567890') # delete cron with cron Id {{%/code%}} {{%/tab%}} {{%tab "Using Cron Name" %}} {{%code class="language-python" scroll="set-scroll" %}}deleted_cron = job_scheduling.CRON.delete('test_cron') # delete a cron with cron name {{%/code%}} {{%/tab%}} {{%/tabs%}} ### Job Pool -------------------------------------------------------------------------------- title: "Get All Job Pools’ Details" description: "This page describes the Python method to get all the job pools present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.673Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Get All Job Pools’ Details Using the following SDK, you will be able to get all the available details on all of the available {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}Job Pools{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}}all_jobpools = job_scheduling.get_all_jobpool() # get all jobpools{{%/code%}} -------------------------------------------------------------------------------- title: "Get Specific Job Pool’s Details" description: "This page describes the Python method to get details of a specific job pool present in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.675Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/jobpool/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobpool/get-job-pool/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/en/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Get Specific Job Pool’s Details Using the following SDK, you will be able to get the details of a particular Job Pool by either passing the name or the ID of the Job Pool to the {{%badge%}}get_jobpool(){{%/badge%}} SDK method. {{%tabs%}} {{%tab "Get Job Pool Details Using Job Pool ID" %}} ### Get Job Pool Details Using Job Pool ID {{%code class="language-python" scroll="set-scroll" %}}jobpool = job_scheduling.get_jobpool('1234567890') # get jobpool with the jobpool id "1234567890"{{%/code%}} {{%/tab%}} {{%tab "Get Job Pool Details Using Job Pool Name" %}} ### Get Job Pool Details Using Job Pool Name {{%code class="language-python" scroll="set-scroll" %}}jobpool = job_scheduling.get_jobpool('test') # get jobpool with the jobpool name "test"{{%/code%}} {{%/tab%}} {{%/tabs%}} ### Jobs -------------------------------------------------------------------------------- title: "Create Job" description: "This page describes the Python method to create a job in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.675Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/create-job/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/create-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Create Job Using the following SDK method, you can create and submit Jobs to trigger {{%link href="/en/serverless/help/functions/job-functions/" %}}Job Functions{{%/link%}}, Webhooks, {{%link href="/en/serverless/help/circuits/introduction/" %}}Circuits{{%/link%}}, and {{%link href="/en/serverless/help/appsail/introduction/" %}}App Sail{{%/link%}} services. You can also pass optional arguments in the form of JSON key value pairs. SDK snippet to create and submit Job to trigger: {{%tabs%}} {{%tab "Job Function" %}} {{%code class="language-python" scroll="set-scroll" %}} # create function job function_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # set a name for the job "jobpool_name": "test", # set the name of the function jobpool where the job should be submitted "target_type": "Function", # set the target type as Function for function jobs "target_name": "target_function", # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) "params": { "arg1": "test", "arg2": "job", }, # set params to be passed to target function (optional) "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) } ) {{%/code%}} {{%/tab%}} {{%tab "Circuit" %}} {{%code class="language-python" scroll="set-scroll" %}} # create circuit job circuit_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # set a name for the job "jobpool_name": "test", # set the name of the circuit jobpool where the job should be submitted "target_type": "Circuit", # set the target type as Circuit for circuit jobs "target_name": "target_circuit", # set the target circuit's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target circuit's Id (optional) (either target_id or target_name is mandatory) "test_cases": {"arg1": "job", "arg2": "test"}, # set the circuit test cases "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) } ) {{%/code%}} {{%/tab%}} {{%tab "Webhook" %}} {{%code class="language-python" scroll="set-scroll" %}} # create webhook job webhook_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # set a name for the job "jobpool_name": "test", # set the name of the webhook jobpool where the job should be submitted "target_type": "Webhook", # set the target type as Webhook for webhook jobs "request_method": "POST", # set the webhook request's method "url": "https://catalyst.zoho.com", # set the webhook request's url "params": { "arg1": "test", "arg2": "job", }, # set the webhook request's query params (optional) "headers": { "IS_TEST_REQUEST": "true" }, # set the webhook request's headers (optional) "request_body": "test_request", # set the webhook request's body (optional) "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) } ) {{%/code%}} {{%/tab%}} {{%tab "AppSail" %}} {{%code class="language-python" scroll="set-scroll" %}} # create appsail job appsail_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # set a name for the job "jobpool_name": "test", # set the name of the AppSail jobpool where the job should be submitted "target_type": "AppSail", # set the target type as AppSail for appsail jobs "target_name": "target_appsail", # set the target appsail's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target appsail's Id (optional) (either target_id or target_name is mandatory) "request_method": "POST", # set the appsail request's method "url": "/test", # set the appsail's url path (optional) "params": { "arg1": "test", "arg2": "job", }, # set the appsail request's query params (optional) "headers": { "IS_TEST_REQUEST": "true" }, # set the appsail request's headers (optional) "request_body": "test_request", # set the appsail request's body (optional) "job_config": { "number_of_retries": 2, # set the number of retries "retry_interval": 15 * 60, # set the retry interval }, # set job config - job retries => 2 retries in 15 mins (optional) } ) {{%/code%}} {{%/tab%}} {{%/tabs%}} -------------------------------------------------------------------------------- title: "Get Job Details" description: "This page describes the Python method to get details of a job in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.676Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/get-job/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/get-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Get Job Details Using the following SDK method, you will be able to get all available details about a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that has been submitted to a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}{{%badge%}}Job Id{{%/badge%}}{{%/link%}} to the {{%badge%}}get_job(){{%/badge%}} SDK method. {{%code class="language-python" scroll="set-scroll" %}}job = job_scheduling.JOB.get_job('1234567890') # get job with job Id {{%/code%}} -------------------------------------------------------------------------------- title: "Delete Job" description: "This page describes the Python method to delete a job in your project with sample code snippets." last_updated: "2026-03-18T07:41:08.676Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/en/job-scheduling/help/job/introduction/) - Java SDK (/en/sdk/java/v1/job-scheduling/jobs/delete-job/) - Node.js SDK (/en/sdk/nodejs/v2/job-scheduling/jobs/delete-job/) - REST API Collection (/en/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Delete Job Using the following SDK method, you will be able to delete a {{%link href="/en/job-scheduling/help/job/introduction/" %}}job{{%/link%}} that is in the process of being executed in a {{%link href="/en/job-scheduling/help/jobpool/introduction/" %}}job Pool{{%/link%}}. You need to pass the {{%link href="/en/job-scheduling/help/job/key-concepts/#job-id" %}}{{%badge%}}Job Id{{%/badge%}}{{%/link%}} to the {{%badge%}}delete_job(){{%/badge%}} SDK method. {{%code class="language-python" scroll="set-scroll" %}}job = job_scheduling.JOB.delete_job('1234567890') # delete job with Id {{%/code%}}