Log every Calendly booking to Google Sheets

By General Input

Mirror every new and cancelled Calendly meeting into a Google Sheets log so you have a queryable record of who booked, when, and why.

Integrations

  • Calendly
  • Google Sheets

Type

Deterministic Code

Categories

  • Operations
  • Sales

Build me a deterministic, code-based workflow that mirrors every new and updated Calendly booking into a Google Sheets log. No LLM step is needed. Run it on a cron every 15 minutes.

On each run, call Calendly's List Scheduled Events for my user or organization, filtered to events whose created_at or updated_at is greater than the cursor we saved on the previous run (default to 24 hours ago on the first run). Page through all results.

For each scheduled event, call Calendly's List Event Invitees and pull, per invitee: invitee name, invitee email, status (active or canceled), the questions and answers they filled out, and any UTM-style tracking values (utm_source, utm_medium, utm_campaign, utm_content, utm_term, plus any salesforce_uuid / tracking fields Calendly returns).

Then call Google Sheets Append Values once per invitee to add a row to a tab called "Bookings Log" in a spreadsheet I will pick at setup. Use these columns in this order: created_at, event_uri, event_type, host, invitee_name, invitee_email, scheduled_start, scheduled_end, status, location_type, join_url, utm_source, utm_medium, utm_campaign, utm_content, utm_term, raw_questions_json. If the tab is empty, write the header row first.

Maintain a state cursor (the max created_at or updated_at we have appended) so the run is idempotent and only writes new or newly cancelled events. Cancellations should be appended as a new row with status = canceled rather than overwriting the original booking, so the log stays append-only and queryable.

Keep the pipeline strictly deterministic: list, transform, append. No model calls. Handle Calendly pagination, retry on transient API errors, and skip gracefully if no new events are found.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads