Last updated: 2026-08-15
CalBatch has no server. It runs entirely inside your Google account as a Google Apps Script add-on. No Google user data — no spreadsheet contents, no calendar events, no email address — is ever sent to us or to any third party. We have no database, no analytics, and no logging of your content.
There is exactly one outbound network request the add-on can make, and it contains no Google user data. It is described in “Third parties” below.
| Permission requested | What it lets the add-on do | Why it is needed |
|---|---|---|
See, edit, create, and delete only the specific Google Sheets spreadsheet you use this add-on with (spreadsheets.currentonly) |
Read the rows you want to turn into events; write the event ID and status back into two hidden columns | The add-on’s entire purpose. It cannot open any other spreadsheet in your Drive. |
View and edit events on your calendars (calendar.events) |
Create, update, delete and read the events you ask it to | Creating and syncing the events is the product |
See the list of calendars you’re subscribed to (calendar.calendarlist.readonly) |
Show you a list so you can choose which calendar to write to, and read that calendar’s time zone | Without it we could not let you pick a calendar, and could not warn you about time zone mismatches |
Display a sidebar inside Google Sheets (script.container.ui) |
Show the add-on’s panel | The user interface |
Connect to an external service (script.external_request) |
Verify a paid licence key with Gumroad | Only used when you enter a licence key. See “Third parties” |
We deliberately do not request the full calendar scope (which would
allow sharing and permanently deleting entire calendars), nor any drive scope (which
would allow reading files you have not opened with this add-on).
Everything the add-on stores is kept inside your own Google account, using Google Apps Script’s Properties Service. We cannot read any of it.
| What | Where | Why | Lifetime |
|---|---|---|---|
The ID of each calendar event the add-on created, and a short status (OK / - / ERR: …) |
Two hidden columns in your own spreadsheet (_EventId, _Status) |
So that running the add-on again updates your events instead of creating duplicates | Until you delete them. The add-on’s “Clear IDs” button removes them |
| Progress of a running job (which row it reached) | Document properties of your spreadsheet | So a long job can resume if it is interrupted | Overwritten on the next run |
| Your licence key, and whether it verified successfully | Your user properties (visible only to you) | So you do not have to re-enter it | Until you press “Deactivate” |
| A count of how many events you have created today, and today’s date (free plan only) | Your user properties | To apply the free plan’s daily limit | Reset automatically each day |
We do not store your spreadsheet contents, your calendar events, your email address, or any identifier of you, anywhere outside your own Google account.
Gumroad — used only for verifying a paid licence.
https://api.gumroad.com/v2/licenses/verify.urlFetchWhitelist), so the add-on is technically
incapable of contacting anywhere else.If you never enter a licence key, the add-on makes no outbound network requests at all.
CalBatch’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
_EventId / _Status columns yourself.Because we hold no copy of your data, there is nothing for us to delete on our side.