← Wharf

Privacy

Wharf reads a snapshot of your primary Google Calendar’s free and busy times for a meeting’s date range. It does not read event titles, descriptions, attendees, or locations, and it never writes to your calendar. When the planner explicitly sends invitations for a finalized meeting, Wharf can email a calendar invitation that you can accept or decline. Your calendar settings determine when it appears.

When you sign in, we store your Google account identifier, display name, verified email address, and profile photo URL in your browser session. Signing in alone does not read your calendar or join a meeting. When you connect a calendar, we also store busy intervals within the meeting’s permitted hours. The planner and joined attendees can see participant names and calculated shared availability. Individual busy intervals are not sent to other participants.

When you first attend a meeting, we request ongoing free/busy access and store an encrypted Google refresh token linked to your account. We use it to check availability when you join future meetings, even after signing out and back in. We do not continuously sync existing meeting snapshots. You can remove your snapshot using “Remove my availability” on a meeting. Removing a snapshot or signing out does not disconnect your calendar. Use “Disconnect Google Calendar” in your account menu to revoke Google access and delete the stored credentials. If Google is temporarily unavailable, access is paused and encrypted credentials are retained only to retry revocation. You can also revoke access in your Google Account connections. Disconnecting does not delete snapshots already shared with meetings.

For agent-created meetings, we store the organizer’s participant labels and bind each private invitation to the Google account that claims it. The organizer and its authorized agent can see response status, Google display names, and shared availability. Agent finalization records a time in Wharf without sending invitations. Withdrawing availability from an agent-created meeting clears that confirmation.

Requests expire after 30 days. Expired records and associated snapshots are removed by a daily cleanup job. Browser sessions expire after 30 days. Data is processed by Vercel and stored in Neon Postgres. Invitation email addresses and meeting details are processed by Gmail to deliver calendar invitations. Delivery records expire with their meeting.

Wharf’s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Data is used only for sign-in, meeting availability, and invitations, never advertising or sale.

Contact: bencalvert04@gmail.com