Log every Calendly booking to Google Sheets
Mirror every new and cancelled Calendly meeting into a Google Sheets log so you have a queryable record of who booked, when, and why.
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.
What does this prompt do?
- Checks Calendly every 15 minutes for new or updated bookings, including cancellations.
- Pulls the invitee's name, email, status, scheduled time, host, location, and any tracking values from the booking link.
- Appends one row per invitee to a Bookings Log tab in your Google Sheet, with all the answers and UTM fields broken out into columns.
- Uses a saved cursor so each run only writes new or newly cancelled meetings, never duplicates.
What do I need to use this?
- A Calendly account you can sign in with.
- A Google account with access to the Google Sheet you want bookings written into.
- A spreadsheet with a tab named Bookings Log (the workflow can create the header row for you on first run).
How can I customize it?
- Change how often it runs. Every 15 minutes is the default, but you can drop to every 5 minutes for high-volume teams or move to hourly for lighter use.
- Choose which columns appear. Add or remove fields like custom intake questions, UTM source, or the join link depending on what your team reports on.
- Point it at a different sheet or tab. Use one log per team, per event type, or per quarter.
FAQs
Will cancelled meetings show up in the log?
Does this work with Calendly Free?
Will it create duplicate rows if the workflow runs twice?
Can I capture UTM tracking from my booking links?
What if I want a separate log per event type?
Related templates
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.
The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.
Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.
Stop losing Calendly history the moment a meeting is cancelled.
Connect Calendly and Google Sheets once, and Geni keeps a clean record of every booking, reschedule, and cancellation for you.