Export data from Calendly: what you can take out and what you cannot
Calendly documents CSV meeting reports that you filter and download from the Calendar page, covering invitee, event, UTM and payment fields, and it offers API v2 with webhooks for scheduling and contact data. IP address history is not part of that export, so a residency or audit requirement that depends on it needs a separate answer from Calendly before you plan the move. Treat the export as a copy of records. It does not carry your booking pages, event type configuration, availability rules, routing logic, connected calendar links or installed integrations, and each of those must be rebuilt on the new platform. Limits on API access and on how far back meeting history goes cannot be stated for your account here, so confirm them in Calendly's own help documentation and in your plan's admin view before you set a deadline.
Start with a test export. Pick a short date range on the Calendar page, download the CSV, and check that the row count matches what the page shows for the same filter. Then confirm which columns appear on your plan, especially the UTM and payment fields, because a missing column can look like missing data later. Record the export settings in a short runbook: the filter, the date range, the person who ran it and the time. For scheduling and contact data beyond what the CSV holds, API v2 and webhooks are the route, but a webhook only delivers events to an endpoint you operate, so someone must own a receiving service and its logs before you switch off Calendly. Ask Calendly how many API requests your plan allows and how long events remain retrievable.
Treat the CSV as personal data. Invitee names, email addresses and answers to booking questions are in the file, so store it in an access-controlled location, set a retention period, and remove copies from downloads folders and shared drives once the import is verified. If your organization has a data processing agreement or a records retention schedule that covers scheduling data, check whether the export satisfies it before you delete anything in Calendly. Keep the Calendly account active until the new system holds the history you are required to keep, because deleting events or the account can remove records you cannot recreate. Confirm with your legal or privacy team what Calendly's terms say about data deletion and export timing.
Which Calendly data you can export, by method and format
This table lists the Calendly data you can take out, the method for each, and the output format. Read the first column as the data type and the last column as the checks to complete before you plan a migration. The main takeaway is that CSV reports cover meeting details, while API and webhook access depends on your plan and on what each endpoint returns, so confirm those limits with Calendly in writing before you rely on them.
| Data type | Export method | Format | What to confirm |
|---|---|---|---|
| Meeting reports, invitee fields | CSV report filtered from the Calendar page | CSV | Which invitee columns appear, and whether cancelled or rescheduled meetings are included |
| Meeting reports, event fields | CSV report filtered from the Calendar page | CSV | Event type names, times and time zones in each row, and the date range limits for a single export |
| Meeting reports, UTM fields | CSV report filtered from the Calendar page | CSV | Whether UTM parameters are captured for every booking link or only some event types |
| Meeting reports, payment fields | CSV report filtered from the Calendar page | CSV | Whether payment columns appear on your plan and only for paid event types |
| IP address history | Not part of the CSV reports | Not documented as an export | Ask Calendly support whether any invitee IP data can be obtained, and for what period |
| API v2, scheduling data | API v2 with an access token | JSON as documented in the API reference | Plan-level API access, rate limits, and filters for scheduled events and event types |
| API v2, contact data | API v2 with an access token | JSON as documented in the API reference | Which contact fields are returned, and whether access depends on plan or user role |
| Webhooks for event notifications | Webhook subscriptions created through the API | JSON payloads as documented in the API reference | Whether webhooks replay past activity or only send new events after subscription, and the plan required |
What Calendly does not export and how to fill each gap
Calendly's CSV reports cover meeting records, but several things that shape how your booking system behaves live outside those files. Plan for each gap before you cancel the subscription, because the data you cannot export is often the data you cannot easily recreate.
IP address history
The meeting CSV reports do not include IP addresses, so you cannot rebuild a history of where bookings came from using the export alone. If your security or fraud team needs that record, keep your own server logs from the day you start running the new booking page. Easy!Appointments and Cal.diy both run on your own web server, so Apache or Nginx access logs can capture client addresses for booking pages. Set a retention period that matches your policy. Ask Calendly what it keeps on its side and whether it will provide any address data on request under your agreement.
Booking page layouts and branding
Page layout, colors, logos, question order and confirmation text are configuration, not records, so they do not come out in a CSV. Treat each public booking page as a rebuild. Write down every event type's description, duration, questions and confirmation message, then recreate them in the target tool and test each link on desktop and mobile. Check which theming options your chosen version of Easy!Appointments or Cal.diy supports, because the two tools differ in how far you can customize pages. Confirm with Calendly that you have captured every page before you stop publishing it.
Routing rules and workflows
Routing logic, reminder sequences and follow-up emails are set up in the Calendly interface and do not appear in meeting reports. Document each rule as a short decision table that lists the condition, the destination and the message sent. Cal.diy's README lists Workflows and Teams among the features it removed from Cal.com, so do not assume an equivalent exists there. Easy!Appointments can add reminders and other integrations through custom development. Ask Calendly which of these settings its API v2 and webhooks expose, since scheduling data and configuration are not the same thing.
Connected calendar credentials and tokens
OAuth grants, calendar connections and API keys are tied to the Calendly account and cannot be copied into another system. Plan to re-authorize every calendar in the new tool, using the account that owns each calendar. Easy!Appointments synchronizes with Google Calendar, and Cal.diy documents Google Calendar and Microsoft Graph connections from its Integrations settings. After cutover, remove Calendly's access from each connected Google or Microsoft account and rotate any API credentials the old setup used. Confirm with Calendly which connections it lists so you can check that none are left behind.
Recorded meeting media
Calendly's booking records describe scheduled meetings, but the recordings themselves usually live with the video provider that hosted the call, such as Zoom or Google Meet. Identify which provider was used for each event type, then export recordings from that provider's own admin tools and check retention settings there, since they may expire on their own schedule. Confirm with Calendly whether it stores any meeting media, transcripts or attachments on its side, and request a copy if it does. Recordings often contain personal data, so move them to storage you control with the same access rules you apply to the rest of your records.
The sequence for a complete Calendly export, with checks at each step
This sequence moves Calendly meeting history, invitee records and scheduling data into an archive your team controls, with a count or sample check at each stage so you can prove nothing was lost before you cancel the account.
Inventory event types, invitees and contacts
The account owner lists every event type, team member calendar, routing form and contact list that holds scheduling data, and records which period each one covers. Someone on the scheduling or IT team writes the inventory into a shared register with the owner name and the earliest and latest meeting date for each event type. The step is done when every event type has a row and someone other than the author has reviewed the list against the Calendly settings screens. Gaps found here are cheaper to fix now than after cutover.
Export CSV reports by date range
From the Calendar page, filter meetings by date range and by event type, then export each CSV report. Save each filter set under a name that records the event type and the date range, so the export can be repeated exactly. Check that the CSV includes the invitee, event, UTM and payment fields you need, and note any fields that are absent. The step is done when every saved filter has a file in the archive and each file's name matches its filter record. Keep the raw files unedited.
Pull API v2 data into a staging store
Using Calendly API v2 with a token issued to the account owner, an administrator on your side pulls scheduled events, invitees and contact records into a staging database on a server you control. Log each request, the time it ran and the page count returned. Verification is a row count per month for scheduled events and invitees, compared with the CSV totals from the previous step, plus a sample of invitee records traced back to the source by identifier. Record any month where the counts differ and investigate before continuing.
Start webhook capture before cutover
Register webhooks for invitee created and canceled events against a receiver on your own server, and start it before you change any booking link. Store each payload as received, with its delivery time and event identifier, so that bookings made during the transition period are not lost. Confirm that the receiver writes a record for a test booking made by someone on your team, and that the same booking appears in the Calendly screens. The step is done when the capture log and the source agree for the test bookings.
Reconcile counts and totals per period
Compare the CSV exports, the API staging data and the webhook log period by period. Check meeting counts, invitee counts, cancellation counts and, where payments were collected, the sum of payment amounts for each month. Any difference is either explained in writing (for example, a timezone boundary on the last day of a month) or corrected by re-exporting. The step is done when every period shows matching counts and totals, or each exception has a recorded explanation approved by the data owner.
Store the archive with access controls and retention
Move the reconciled files and database extract into an encrypted location on your own infrastructure, restricted to named roles. Write a retention rule that states how long invitee personal data is kept, who may request deletion and how that request is logged. Test access by confirming that a user outside the approved group cannot open the archive. The step is done when access rights are recorded, the retention rule is approved by the privacy or compliance owner, and a restore of one sample month has been tested.
Sign off the checks in writing
Assemble the inventory, export filters, reconciliation results, access test and retention rule into one sign-off record. The data owner, the IT administrator and the compliance lead each sign or initial it, with the date. Keep the record with the archive so that an auditor or a future team can see what was exported, how it was checked and who accepted it. Only after sign-off should the Calendly account be downgraded or closed.
Choosing between CSV reports, the API and webhooks
For a small team on one Calendly account, the CSV reports are the primary source. They are filtered from the Calendar page, so you choose a date range and download meetings with invitee, event, UTM and payment fields in a file that needs no engineering work. That covers most one-time moves: a record of who booked what, when and through which event type, which you can load into a spreadsheet or into the scheduler you are moving to.
- Start with the CSV export: Pull the meeting history for each date range you need to keep, and name each file with the account and the range it covers.
- Note what the file leaves out: The reports do not include IP address history, so arrange another record if an audit or consent review needs it.
- Skip the API unless a script is already planned: For one account, building an integration usually costs more than the export it would replace.
- Use webhooks only for the live cutover: A webhook records events only from the point it is enabled, so it will not recover bookings made before that date.
Confirm with Calendly which fields and date ranges your plan's export includes before you rely on the files for records.
A larger team with many event types, routing rules and a long contact list needs an export that is repeatable and complete. Manual CSV pulls become hard to reconcile at this scale. The API v2 is worth its engineering effort when scheduling data and contact data must be joined by event type, team member or invitee, or when the same extraction has to run on a schedule. For structured, repeatable extraction, the API is the primary path.
- Map event types to owners first: Export the list of event types and their assigned hosts before pulling bookings, so each record can be traced to a service or provider on the target system.
- Use the API when joins matter: Pulling bookings and invitee records by event type through API v2 is worth the build cost when manual reconciliation would take longer than the script.
- Design for paging and retries: Build the client to handle paged results and failed requests, and confirm how Calendly signals rate limiting for your token type so the job slows down instead of failing silently.
- Keep dated CSVs as a second copy: Use the API for the structured migration, and keep CSV reports from the same period to compare totals against.
- Check API access by plan: Confirm which plans and token types can call API v2 and create webhook subscriptions before you scope the work.
Ask Calendly in writing which API access terms and rate limit policies apply to your plan before you set a migration schedule.
An organization that must keep scheduling data flowing during a transition needs several paths running in sequence. The CSV export gives a dated historical baseline, the API fills in bookings made after that baseline, and webhooks capture new bookings, cancellations and reschedules from the point they are enabled. Neither webhooks nor a one-time export covers the whole period alone, so the paths are planned together.
- Take a dated baseline: Export CSV reports for the full history up to the cutover, and record the time each export was run.
- Enable webhooks before the baseline: Turn on subscriptions before the baseline export starts, so no booking falls into the gap between the two.
- Reconcile with the API: Compare bookings created after the baseline against the webhook log and the new system, and fill any missing records through API v2 queries.
- Keep existing booking links live: Leave Calendly links working until you have verified that new bookings appear in both systems.
- Log each cutover step: Record the time of every change so auditors can see which system held each booking at each point.
Confirm with Calendly how long API access and webhook subscriptions remain available during your transition, and what happens to them if your plan changes.
Mapping exported fields to the target scheduler
Map every exported column to a destination before any data moves. In Calendly, an event type is the unit that customers book, so it becomes a service in Easy!Appointments or an event type in Cal.diy. Team members in the export map to providers in Easy!Appointments, which organizes services and providers as its core model. Cal.diy removed Teams and other Enterprise-only features, so a team member there is usually an individual account, and you should confirm how that affects shared availability before you decide where each person's bookings will sit. Invitee name and email are the fields most likely to become customer records, so check that the target stores both in a form you can search and export later.
Several exported fields have no direct equivalent. UTM source, medium, campaign and similar tracking values, payment details, and the answers invitees gave to custom questions are the usual gaps. Keep them in a notes field or in a companion spreadsheet keyed by the original booking identifier, so each record can be traced back to the source row. Ask the target vendor or your implementation partner whether custom fields are supported before you design around them. The Easy!Appointments website says custom development can add payments, reports and reminders, but that is paid work with its own scope, so treat it as a quote item rather than a default feature. Cal.diy's documented integrations cover calendars, video and CRM tools, not payment capture for bookings made from the export.
Past bookings are a different kind of data from live appointments. The target may not accept historical bookings as live bookings, and loading them as active records could create reminders, double bookings or confusing availability. Keep the archive as a read-only record outside the live scheduler. Store the original CSV files unchanged, record a checksum for each file, and index them by booking identifier and date range. Restrict access to the people who handle compliance or customer disputes. Before cutover, load a small sample into a test instance and confirm that it does not affect availability or notifications.
What to plan before the Calendly contract ends
Calendly's data export is only useful if it happens inside the window your plan allows. The cards below cover the timing, access, compliance, cost, deletion and link decisions that determine whether the export holds up after the account closes.
Set the export deadline
Calendly bills per seat on its pricing page, and the October 2026 read shows Standard at $10 and Teams at $16 per seat per month billed yearly. Those cycles set when your seats end, so schedule the full export before the last billable day. Confirm the billing end date and any notice period in your contract, since renewal terms and cancellation windows vary by agreement.
Keep seats active for access
Meeting CSV reports are filtered from the Calendar page, so the account that can open those views must still hold an active seat when you run them. Identify which admin and member accounts own event types and reports, and confirm with Calendly whether data remains reachable after a seat is removed. Plan to pull everything before any downgrade.
Decide what history you need
Compliance reviews, legal holds and dispute handling may require past meeting records for a defined period. Ask your legal and compliance leads which records must survive, then confirm with Calendly what the exported CSV reports include, since the export does not supply IP address history. Record any gap in a written note so the archive owner knows what was never captured.
Assign who does the export
Export work falls on whoever holds Calendly admin rights and on whoever maps fields into your new system. Under a fixed-scope engagement, the written scope defines who runs the CSV pulls, API v2 calls and webhook captures, and who validates the output. Ask any implementation partner to state those deliverables and owners in writing before work begins.
Handle deletion and retention
Invitees may ask for their data to be deleted, and that request can conflict with a retention schedule you must meet. Decide where the archive lives, how long it is kept, and how deletion requests are logged and honored across the archive and any copies. Confirm Calendly's deletion process and your own retention policy before you copy personal data out of the account.
Replace booking links everywhere
Calendly links often sit on websites, email signatures, proposals and calendar invitations, and none of them update automatically. Inventory every place a link appears, then set up the replacement booking page and a redirect plan before you cancel the account. Once the old link stops working, invitees who used it will see errors, so schedule the cutover with the support team.
Export questions buyers ask before hiring help
How long does a Calendly data export take?
The time depends on how much history you hold, how many event types and team members you have, and whether the work is a CSV pull or an API build. A plain CSV report for a small account is a short task for one admin, while a full export of scheduling and contact data through the API v2 and webhooks needs engineering time to design, test and validate the output. Calendly's CSV reports are filtered from the Calendar page, so the date ranges and filters you choose set how many passes you need. The exact effort depends on the scope agreed in writing before work starts, so ask for the estimate to list each data set, the number of event types covered and the validation steps.
What do we need to provide for an export engagement?
The account owner needs to grant the access the work requires and confirm which data sets are in scope. Typically that means an admin login to the Calendly account for the CSV reports, and, if the export uses the API, a personal access token or OAuth application that the account owner creates and can revoke. An engineer needs access to the target server or storage location, a list of the event types and users to include, and a decision on the retention period for the archive. Ask the consultant to write these prerequisites into the scope so nothing is discovered midway through.
Can a non-technical admin export the CSV reports alone?
Yes, for the CSV part a non-technical admin can usually run the reports from the Calendar page and download the files without engineering help. The limits are practical: the CSV reports cover meeting history with invitee, event, UTM and payment fields, but they do not include an IP address history, and they will not give you a complete, structured archive of every scheduling object on their own. Someone still has to check that the row counts match what the account shows, store the files in a controlled location and decide how to keep them readable over time. Many teams do the CSV pull internally and bring in help only for the API and archive work.
What does a fixed-scope export from a consultant usually include?
In general terms, a fixed-scope export covers an agreed list of data sets, a method for extracting each one, a documented file format and folder structure, a checksum or record-count reconciliation against the source, and a short handover note. Where the work is a self-hosted archive, it may also include the storage setup, access controls and a restore test. DeployOpen plans, implements, documents and supports self-hosted platforms inside the client's own infrastructure, and most engagements are fixed-scope with deliverables and timelines agreed in writing. Ask any provider to list each deliverable, what is excluded and who keeps access to the output.
Does an exported Calendly archive count as legal proof of records?
No. An export is a copy of data, and whether a copy can serve as evidence depends on your jurisdiction, your retention obligations and how the copy was made and kept. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications, and independent auditors and certification bodies make those determinations. Before you rely on the archive for a dispute, regulatory request or retention duty, confirm the requirements with your counsel and document the export method, timestamps and reconciliation steps so the chain of custody can be explained.
What costs recur after the export if we host the archive ourselves?
After the one-time export, recurring costs are the infrastructure and people who keep the archive available. These include server or cloud storage, backups of the archive itself, operating system and database patching, access reviews, and the time of whoever answers restore requests. If the archive is hosted in your own cloud account or data center, you also pay for the compute and network that serve it. Calendly's own per-seat fees end when the subscription ends, but the archive does not run itself. Ask the provider for a cost breakdown separating one-time work from monthly or yearly operating items, and confirm who owns each recurring cost.
How DeployOpen scopes and delivers a Calendly data export
DeployOpen treats a Calendly export as a written, fixed-scope piece of work: we agree which reports, fields and API data the organization needs, then build a repeatable extraction and verify it against the source account. Engagements are scoped in writing before work starts, so the client knows what gets exported, where it lands and what is handed over.
How we scope
- Inventory which Calendly meeting CSV reports, invitee fields and UTM or payment columns the business needs to keep
- Decide whether API v2 and webhook data for scheduling and contacts is in scope, and who owns the API credentials
- Agree the target location on your own servers, the file formats and the verification steps in a written scope
How we build
- Build a repeatable export process that pulls filtered meeting reports and API data into your own storage
- Test the output against sample meetings in the Calendly account, checking invitee, event and time zone fields
- Document known gaps, such as IP address history that the CSV reports do not include, and how to handle them
How we hand over
- Deliver the export scripts, configuration and a runbook describing each step, with access controls on the target store
- Provide a reconciliation checklist so your team can confirm record counts and totals against Calendly before cutover
- Walk through the archive layout and retention settings with the owners who will use the data after handover
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer if exports must run again
- Re-check the export after Calendly changes its reports or API behavior, with the change agreed in writing
- Confirm current Calendly export options directly with Calendly before the scope is signed, since product features change

