From 8e16344696cb1b07b4044096f20fb07e8efdc5f7 Mon Sep 17 00:00:00 2001 From: bastienwellapp Date: Tue, 28 Apr 2026 11:52:55 +0200 Subject: [PATCH] feat: add blueprint for calendly --- ai-connector/calendly/calendly.json | 79 +++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 ai-connector/calendly/calendly.json diff --git a/ai-connector/calendly/calendly.json b/ai-connector/calendly/calendly.json new file mode 100644 index 0000000..6a7281b --- /dev/null +++ b/ai-connector/calendly/calendly.json @@ -0,0 +1,79 @@ +{ + "meta": { + "schemaVersion": "1.0.0" + }, + "data": { + "type": "blueprint", + "attributes": { + "getDocuments": [ + { + "action": "goToUrl", + "url": "https://calendly.com/app/admin/billing" + }, + { + "action": "waitForNetworkIdle" + }, + { + "action": "wait", + "seconds": 2 + }, + { + "action": "forEach", + "id": "invoice-buttons", + "on": { + "querySelector": "button[aria-label*='invoice']" + }, + "selectorStrategies": [ + { + "strategy": "aria-role", + "value": "button[aria-label*='invoice']" + }, + { + "strategy": "css", + "value": "td:nth-of-type(5) button" + } + ], + "steps": [ + { + "action": "startDownloadInterception" + }, + { + "action": "click" + }, + { + "action": "wait", + "seconds": 3 + }, + { + "action": "stopDownloadInterception", + "outputVariable": "new_pdfs" + }, + { + "action": "mergeVariables", + "inputVariable": "new_pdfs", + "outputVariable": "all_pdfs" + } + ] + }, + { + "action": "downloadPdfsFromUrls", + "inputVariable": "all_pdfs" + } + ], + "checkAuth": [ + { + "action": "goToUrl", + "url": "https://calendly.com/app/admin/billing" + }, + { + "action": "waitForNetworkIdle" + }, + { + "action": "checkAuth", + "authSelector": "a[href*='/admin/billing']", + "timeout": 10000 + } + ] + } + } +} \ No newline at end of file