Trust

Security & privacy at ZagCal

What we read and write

To know when you're free, ZagCal reads only the busy/free time ranges from your connected calendars. We do not read event titles, descriptions, guests, or locations.

When we mirror a commitment to your other calendars, we write a generic "Busy" block — a placeholder with no detail about the underlying meeting. So even across your own accounts, nothing about an event is ever exposed.

Least-privilege access

Encryption

Access tokens and calendar credentials are encrypted at rest using envelope encryption with versioned, rotatable key-encryption keys — a database read alone cannot reveal them. All traffic to ZagCal is encrypted in transit over TLS.

Isolation across organizations

Many of our users work across several organizations. ZagCal enforces strict data isolation between every organization you belong to: a calendar in one org never bleeds into another, and the sync engine refuses to mirror across ownership boundaries.

Your data, your control

ZagCal supports full export of your account data and complete account erasure — email privacy@zagcal.com to exercise either. On deletion we tear down the placeholders ZagCal created on your providers and remove your data. Exports are built from an allowlist of fields and never include your access tokens or any event content.

Booking pages keep details where they belong

When someone books time through your public page, that real meeting is written to the single calendar you chose. Your other calendars only ever see the generic busy block the sync engine propagates — so a booker's name and notes never leave your target calendar.

How we operate

Found a security issue? Email security@zagcal.com. We appreciate responsible disclosure and will work with you on a fix.