đź“… How to schedule scenario for first Monday next month (recurring)

Summary

Here’s how to use the Make API module to reschedule the scenario to run only on the first Monday each/next month (instead of running every Monday). Using this method, you can potentially save four operations, and you don’t need an additional filter.

Just put this somewhere in your scenario (it can even be the trigger module), so it will reschedule itself to the first Monday next month at midnight.

You will need to set up your Make API connection. Instructions can be found in the Help Center. When creating a Make API Token, you need to select the scope “scenarios:write”.

Demo

After running this scenario in February 2024, it has rescheduled to 4th March 2024 (a Monday). When this scenario runs in March, it will reschedule the next run to 1st Apr 2024 (Monday), and so on.

Gimme the module

You can copy and paste this module export into your scenario. This will paste the modules shown in my screenshots above, along with the mappings.

  1. Copy the code below by clicking the copy button when you mouseover the top-right of the code block
    Screenshot_2024-01-17_200117

  2. Enter your scenario editor. Press ESC to close any dialogs. Press CTRLV to paste in the canvas.

  3. Click on each imported module and save it. You will need to set-up/select your Make connection.

Modules JSON Export

{
    "subflows": [
        {
            "flow": [
                {
                    "id": 2,
                    "module": "make:makeApiCall",
                    "version": 1,
                    "parameters": {
                        "__IMTCONN__": 113550
                    },
                    "mapper": {
                        "url": "/v2/scenarios/{{var.scenario.id}}",
                        "method": "PATCH",
                        "headers": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": "{\"scheduling\": \"{ \\\"date\\\": \\\"{{setSecond(setMinute(setHour(addDays(setDay(setDate(addMonths(now; 1); 1); 2); if(formatDate(setDay(setDate(addMonths(now; 1); 1); 2); \"M\") = formatDate(now; \"M\"); 7; 0)); 0); 0); 0)}}\\\", \\\"type\\\": \\\"once\\\" }\"}"
                    },
                    "metadata": {
                        "designer": {
                            "x": 305,
                            "y": 3,
                            "name": "First Monday Next Month"
                        },
                        "restore": {
                            "parameters": {
                                "__IMTCONN__": {
                                    "collapsed": true,
                                    "label": "Make Connection",
                                    "data": {
                                        "scoped": "true",
                                        "connection": "make"
                                    }
                                }
                            },
                            "expect": {
                                "method": {
                                    "mode": "chose",
                                    "label": "PATCH"
                                },
                                "headers": {
                                    "mode": "chose",
                                    "items": [
                                        null
                                    ]
                                },
                                "qs": {
                                    "mode": "chose",
                                    "collapsed": true
                                }
                            }
                        },
                        "parameters": [
                            {
                                "name": "__IMTCONN__",
                                "type": "account:make",
                                "label": "Connection",
                                "required": true
                            }
                        ],
                        "expect": [
                            {
                                "name": "url",
                                "type": "text",
                                "label": "URL",
                                "required": true
                            },
                            {
                                "name": "method",
                                "type": "select",
                                "label": "Method",
                                "required": true,
                                "validate": {
                                    "enum": [
                                        "GET",
                                        "POST",
                                        "PUT",
                                        "PATCH",
                                        "DELETE"
                                    ]
                                }
                            },
                            {
                                "name": "headers",
                                "type": "array",
                                "label": "Headers",
                                "spec": [
                                    {
                                        "name": "key",
                                        "type": "text",
                                        "label": "Key"
                                    },
                                    {
                                        "name": "value",
                                        "type": "text",
                                        "label": "Value"
                                    }
                                ]
                            },
                            {
                                "name": "qs",
                                "type": "array",
                                "label": "Query String",
                                "spec": [
                                    {
                                        "name": "key",
                                        "type": "text",
                                        "label": "Key"
                                    },
                                    {
                                        "name": "value",
                                        "type": "text",
                                        "label": "Value"
                                    }
                                ]
                            },
                            {
                                "name": "body",
                                "type": "any",
                                "label": "Body"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "metadata": {
        "version": 1
    }
}

See also

samliew – request private consultation

Join the unofficial Make Discord server to chat with other makers!

4 Likes
Running a Scenario everyday twice at a different specified Time
Automatically post with a delay for each data
How to schedule scenario for first Monday of the month
Seeking Assistance for Setting Up Organic Pinterest Post Automation
From iterare to pdfmonkey
Using Make
How to get a spreadsheet ID from a file I'm uploading in the same scenario?
Getting started into make
Web Archive
How to merge results from multiple YouTube search iterations into one array?
Adding an item to a Pipedrive array without overwriting the original values
More operations then expected in HTML extraction
Recipe Card Automation
How to create a full Webflow CMS RSS feed using Make.com?
Use Custom GPTs (Team account) to create outlook drafts
SUM values of Make modules (Increment and variable)
New to Make and Social Media Automation
Telegram bot watch update module missing?
How to Connect Acuity "New Appointments" Contact details to Google Contacts?
How to fetch text from a bundle
Scheduling a Scenario to run at A Random Time 10 mins to 39 mins from last execution
How to loop over an array and generate HTML with native functions?
How to combine 2 scenarios?
Etsy - Gmail - Dropshipping Order Fulfillment Automation
Automated Follow-Up Emails After No Reply
Filter bundles based on the presence of a value in an array of objects
Working with dates inside an array
Just joined-need help for a community newspaper
Data Enrichment - Make.com Automation Scenario
Can OpenAI in Make actually read PDFs directly (via file upload)?
Automation documentation
Error applying get with embeded map
Sales Tracking Tool in Google sheet /Forms
Google Calendar Set current week date
Help with a Json Scenario
Guided product creation assistant
Meta integration with Clickup
Google Workspace Admin module configuration
Integration of Planyo with Lexware
Problem Capturing the First line from Facebook Post
I want to append page content into a database page from another database page content
How to set up a scenario to run at regular intervals (every hour) but only on specific days of the month (eg : 2nd and 3rd...)
How can I continue the execution of a router when the output of the first module is empty?
How to use AI to analyze salesforce case, then fill the lookup relationship field on the Case?
YouTube search automation: how to avoid duplicates and get a limited number of videos
Expert advice required and ideally contact
đź“… How to schedule scenario for the last day next month (recurring)
:house_with_garden: Make Community Roundup: January 2024 [CR]
Error Handling BAD combo: Sequential Processing + Incomplete Executions

hi @samliew
one question about

Its possible to add into this JSON the “isActive”: true or I need to activate late thru another POST /v2/scenarios/{scenarioId}/start module?

Best regards,