Adjusting CloudWorks Integration Schedules for Daylight Saving Time (DST) Using Postman

AnaplanOEG
edited March 6 in Best Practices

Intended Audience

Level of Difficulty: Intermediate​

  • Requires familiarity with APIs and Postman

Resources Required:

  • Internal Expertise: IT Developer / API User​
  • Tools Needed: Postman, CloudWorks
  • Access Requirements: CloudWorks, Postman, Anaplan Integration Admin

Estimated Level of Effort (LoE): Low

  • Approximately 1-2 hours

Introduction

Anaplan's CloudWorks schedules integrations based on Coordinated Universal Time (UTC). In regions observing Daylight Saving Time (DST) or when business hours change, it's essential to adjust these schedules to maintain alignment with local time.

This guide demonstrates how to use Postman to:​

  • Retrieve all scheduled CloudWorks integrations
  • Bulk adjust their schedules
  • Update CloudWorks with the new schedule times

Understanding CloudWorks Scheduling and DST Relevance

CloudWorks schedules are set using UTC and do not automatically adjust for DST changes in your local timezone. Manually updating schedules ensures that integrations continue running at the expected local business hours.​

Solution Overview

This guide provides a step-by-step walkthrough on:​

  1. Authenticating with Anaplan
  2. Retrieving your CloudWorks integration schedules
  3. Adjusting the schedule times manually
  4. Bulk updating the schedules in CloudWorks using the API

Step-by-Step Guide

Step 1: Authenticate with Anaplan

Before making API requests, you must authenticate with Anaplan to obtain an authentication token.​

Create an Authentication Request

  1. Open Postman and create a new POST request.
https://auth.anaplan.com/token/authenticate

On execution, you should see an API response similar to the following:

Step 2: Retrieve Your Integration Schedules

With the authentication token, retrieve the schedules of your integrations.​

Create a Request to Get Integration Schedules

  1. Create a new GET request in Postman.
https://api.cloudworks.anaplan.com/2/0/integrations

Include the following headers:

Authorization: AnaplanAuthToken {your_token_value}

On response, you should see an API response that contains the current schedule details for all integrations you have in CloudWorks.​

Step 3: Adjust the Schedules

To change the integration schedules, modify the time field in the API request.​

Create a PUT Request to Update the Schedules

  1. Create a new PUT request in Postman.
https://api.cloudworks.anaplan.com/2/0/integrations/{integrationId}/schedule

Include the following headers:

Authorization: AnaplanAuthToken {your_token_value}​
Content-Type: application/json​

Include the following parameters in the request body:

  • This information can be found in your previous response as seen in the screenshot above.
{
    "integrationId": "ebb5fc3e75f246b6a9f8323ab41b7eda",
    "schedule": {
        "name": "S3 Export Schedule",
        "time": "05:09",
        "type": "daily",
        "timezone": "America/Chicago",
        "startDate": "2025-03-06"
    }
}

Adjust the time field forward or backward by one hour.​

Send the request.

Step 4: Automate Bulk Updates Using Postman

To efficiently update multiple integration schedules, you can automate the process using Postman's scripting capabilities.​

1. Prepare a CSV File with Integration Details

Create a CSV file (integrations.csv) containing the integration IDs and the desired new schedule times.​

Example integrations.csv:

integrationId,scheduleName,scheduleType,startDate,newTime
Integration1,S3 Export Schedule,daily,2025-03-07,07:00
Integration2,integration2scheduleName,daily,2025-03-10,06:00

2. Set Up a Collection in Postman

  • Create a new request in the collection for updating schedules.
https://api.cloudworks.anaplan.com/2/0/integrations/{{integrationId}}/schedule

Include the following headers:

Authorization: AnaplanAuthToken {your_token_value}​
Content-Type: application/json​

Include the following parameters in the request body:

  • This information can be found in your previous response as seen in the screenshot above.
{
    "integrationId": "{{integrationId}}",
    "schedule": {
        "name": "{{scheduleName}}",
        "time": "{{newTime}}",
        "type": "{{scheduleType}}",
        "timezone": "America/Chicago",
        "startDate": "{{startDate}}"
    }
}
  • Notice that in this request body we have substituted hard-coded values with the column headers from our CSV file. This will allow us to select the CSV file when we run the collection and feed each integration into the Postman request one-by-one, mapping to the respective values inside of the request body.

3. Use Postman’s Runner to Automate Bulk Updates

Postman’s Collection Runner allows you to update multiple integration schedules automatically.

Steps to Run Bulk Updates:

  • Go to the Postman Collection Runner.
  • Select your Collection that contains the PUT request.
  • Click "Select File" and upload integrations.csv
    • integrationIdintegrationId
    • namescheduleName
    • timenewTime
    • typescheduleType
    • startDatestartDate
{
    "integrationId": "{{integrationId}}",
    "schedule": {
        "name": "{{scheduleName}}",
        "time": "{{newTime}}",
        "type": "{{scheduleType}}",
        "timezone": "America/Chicago",
        "startDate": "{{startDate}}"
    }
}
  • Click “Run” to execute the bulk updates.

Step 5: Verify the Updated Schedules

  1. Repeat Step 2 (Retrieve Integration Schedules).
  2. Confirm the time value reflects the new adjusted schedule.

Changes to Make for Weekly and/or Monthly Schedules:

Adjustments need to be made to both the request body for the PUT request as well as the CSV file that contains the integrations, as these types of schedules require more details.

For Weekly Schedules:

integrations.csv:

integrationId,scheduleName,scheduleType,startDate,newTime,dayOfMonth
Integration1,Monthly Schedule,monthly_specific_day,2025-03-10,08:00,10

PUT Request Body:

{
    "integrationId": "{{integrationId}}",
    "schedule": {
        "name": "{{scheduleName}}",
        "time": "{{newTime}}",
        "type": "{{scheduleType}}",
        "timezone": "America/Chicago",
        "startDate": "{{startDate}}",
        "dayOfMonth": {{dayOfMonth}}
    }
}

For Monthly Schedules:

integrations.csv:

integrationId,scheduleName,scheduleType,startDate,newTime,daysOfWeek
Integration1,Weekly Schedule,weekly,2025-03-11,08:00,2

PUT Request Body:

{
    "integrationId": "{{integrationId}}",
    "schedule": {
        "name": "{{scheduleName}}",
        "time": "{{newTime}}",
        "type": "{{scheduleType}}",
        "timezone": "America/Chicago",
        "startDate": "{{startDate}}",
        "daysOfWeek": {{daysOfWeek}}
    }
}

Frequently Asked Questions (FAQ)

Does this method detect if DST is active?

  • No, this approach is manually triggered. Customers must determine when a schedule adjustment is needed.

Can I adjust multiple integrations at once?

  • Yes, using Postman’s Collection Runner with a CSV file, you can update multiple schedules in bulk.

What if I make a mistake?

  • Simply run another PUT request with the original time.

What if an integration doesn’t update?

  • Ensure:
    • The integration ID is correct.
    • Your authentication token is valid.
    • The integration has a schedule set.

Conclusion

This guide outlines how to bulk update CloudWorks integration schedules using Postman. By leveraging API requests and Postman’s Collection Runner, customers can efficiently manage integration schedules.

Got feedback on this content? Let us know in the comments below.

Author: Jon Ferneau, Data Integration Principal, Operational Excellence Group (OEG)