AutomationFlowsGeneral › Reschedule Google Calendar Appointments with Stream Deck (15/30/60 Min)

Reschedule Google Calendar Appointments with Stream Deck (15/30/60 Min)

ByDavid Ashby @cfomodz on n8n.io

Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

Webhook trigger★★★☆☆ complexity12 nodesGoogle Calendar
General Trigger: Webhook Nodes: 12 Complexity: ★★★☆☆ Added:

This workflow corresponds to n8n.io template #4634 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "8fbd7271-5dc7-4af6-bf6f-d2456745f629",
      "name": "Get the Events for the Rest of the Day",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -240,
        20
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "ae6ba2b2-d047-4a4c-abe6-c3b1605b22e5",
      "name": "Respond with 200",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        260,
        -140
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "799e0edd-cec4-4be7-a348-edffe3f2470f",
      "name": "Hit this URL from Streamdeck http request button",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -500,
        -20
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "da4bf348-2f4b-4ad5-bd95-61b966e5d692",
      "name": "Push All Meetings 30 Minutes Later",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -20,
        -80
      ],
      "parameters": {},
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "f3336226-00b0-4ab2-b7f4-24dfed0e8d12",
      "name": "Push All Meetings 60 Minutes Later",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -20,
        300
      ],
      "parameters": {},
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "33b441d9-7f6f-4718-a6a8-e1f777104020",
      "name": "Push All Meetings 15 Minutes Later",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -20,
        -460
      ],
      "parameters": {},
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "10e0b2ec-f720-45a8-b4b7-95bea9369168",
      "name": "Get the Events for the Rest of the Day 60",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -240,
        400
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "47044dae-9034-4aa7-baad-f7d12b31c48e",
      "name": "Hit this URL from Streamdeck http request button 60",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -500,
        360
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b1fe27b1-648b-4928-87fa-6d54c28cc9aa",
      "name": "Hit this URL from Streamdeck http request button 15",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -500,
        -400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "5df079fa-6e7d-4769-abd4-4957ec6c71d0",
      "name": "Get the Events for the Rest of the Day 15",
      "type": "n8n-nodes-base.googleCalendar",
      "onError": "continueErrorOutput",
      "position": [
        -240,
        -360
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "777ec669-c2dd-4414-a244-d92feb8a491c",
      "name": "Respond with 500",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        260,
        40
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "550337d6-a181-4d05-b730-a53bcfd3a370",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -340
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Push All Meetings 15 Minutes Later": {
      "main": [
        [
          {
            "node": "Respond with 200",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Push All Meetings 30 Minutes Later": {
      "main": [
        [
          {
            "node": "Respond with 200",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Push All Meetings 60 Minutes Later": {
      "main": [
        [
          {
            "node": "Respond with 200",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get the Events for the Rest of the Day": {
      "main": [
        [
          {
            "node": "Push All Meetings 30 Minutes Later",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get the Events for the Rest of the Day 15": {
      "main": [
        [
          {
            "node": "Push All Meetings 15 Minutes Later",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get the Events for the Rest of the Day 60": {
      "main": [
        [
          {
            "node": "Push All Meetings 60 Minutes Later",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond with 500",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hit this URL from Streamdeck http request button": {
      "main": [
        [
          {
            "node": "Get the Events for the Rest of the Day",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hit this URL from Streamdeck http request button 15": {
      "main": [
        [
          {
            "node": "Get the Events for the Rest of the Day 15",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hit this URL from Streamdeck http request button 60": {
      "main": [
        [
          {
            "node": "Get the Events for the Rest of the Day 60",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

Source: https://n8n.io/workflows/4634/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Connect a Vapi AI voice agent to Google Calendar to capture contact details and auto-book appointments. The agent asks for name, address, service type, and a preferred time. The workflow checks availa

Google Calendar
General

github code Try yourself

Google Calendar
General

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

N8N Nodes 1Shot
General

jump-section: Comment Fix Pipeline. Uses httpRequest. Webhook trigger; 24 nodes.

HTTP Request
General

This workflow provides a universal webhook endpoint that dynamically routes incoming requests to different subflows. It allows you to manage multiple API-like endpoints from a single entry point, whil