Privacy Policy
Last updated: November 6, 2026
1. Information We Collect
ShootCal operates under a privacy-first model. The App only accesses data that is strictly necessary to perform its core functions.
A. Calendar-Provider Data (With Your Explicit Permission)
- Provider Account Information: Google or Microsoft identity details identify the account you choose. Signing into ShootCal and granting calendar access are separate choices.
- Connected Calendar Events: If you connect Google or Microsoft, ShootCal reads calendars and events for the schedule and busy-time features you choose. It writes ordinary appointment schedule fields to the selected calendar; client records, tasks, private internal notes, contracts, invoices, and payment records stay in ShootCal. Calendar titles, locations, and descriptions may themselves contain personal information you enter.
- Attendee RSVP Status: For supported one-off invitations on a selected connected, writable Google or Microsoft calendar, ShootCal can read the provider’s attendee response status. ShootCal-only appointments do not send provider invitations; ordinary business email and add-to-calendar attachments are separate.
- Google Contacts (Optional Import): You may explicitly import older clients from the ShootCal Clients group into your saved ShootCal roster. The import reads the selected source without changing Google contacts. Later edits are saved in ShootCal; connecting Google does not automatically link or continuously sync your contacts.
- Google “Other contacts” (Optional, read-only): If you separately opt in to “Find client emails” during the Client Scan (see Section 4), the App reads, on a strictly read-only basis, your Google “Other contacts” (the names and email addresses Google automatically saves from people you have emailed) solely to suggest an email address for a scanned client name. You review and confirm every suggestion, and nothing in your contacts is created or changed.
- Google Tasks (Optional Import): You may review Google task lists and explicitly select a list for a one-time copy into ShootCal. Active and completed tasks are copied, deleted source records are retained in an original archive, and Google stays unchanged. Later task edits are saved in ShootCal. Ordinary tasks and client or appointment follow-ups do not require Google.
- Google Drive (Optional, app-created files only): If you choose to save a signed contract to Google Drive, the App writes a copy of that contract into a dedicated ShootCal Contracts folder. If you separately enable invoice Drive backups, ShootCal uploads a recurring backup archive of your invoice, payment, and expense records into a dedicated ShootCal Invoice Backups folder. Both use the drive.file scope, which limits access to only the files the App itself creates. The App cannot read, modify, or even see any of your other Drive files.
B. ShootCal Account Data & Local Device Storage
- Location Metadata: A city name and geographic coordinates used strictly for computing local golden hour, sunrise, and sunset times.
- Application Preferences: Shared session types are saved in your ShootCal account and managed on the web; follow-up templates saved by earlier versions remain stored with your account. Device settings can include calendar selection, local notifications, appearance, and sunrise/sunset location.
- On-Device Cache and Sign-In: The iPhone and iPad apps may retain local snapshots for fast viewing and keep their sign-in credential in the Apple System Keychain. The current Mac app uses a browser cookie for sign-in and stores a limited offline schedule on your computer. These snapshots do not replace the server records. ShootCal stores a one-way hash of each ShootCal session token, not its raw value, on the server.
- Saved Studio Records: Your appointments, client roster and internal client notes, tasks and their client or appointment relationships, follow-up plans, session types, booking settings and requests, contracts, and invoices are stored on ShootCal’s server, scoped to your account. Connecting Google or Microsoft is optional and does not move this business data to the provider.
Reviews: When you submit a review, we store the information you provide, your publication permission and its moderation status. Approved reviews may display your name, business, website, rating and review publicly. Your optional email address stays private. Contact ShootCal support to request removal.
C. Invoice & Payment Data (Optional Web Feature)
If you use ShootCal’s invoicing feature, the following records are stored in ShootCal’s server database so you and your client can view the invoice and so the payment and refund history remains auditable:
- Invoice settings: Your one-time setup acknowledgement, usual sales-tax label and rate, whether tax should be applied by default, your Stripe connection status, and the manual payment methods and instructions you configure.
- Invoice records: The client name and optional email address, invoice number and status, issue and final-balance dates, USD line items and amounts, tax selection and calculation, an optional deposit amount within the full invoice total, memo, the payment instructions captured when the invoice is issued, and an optional link to the exact ShootCal appointment used to update its paid/not-paid deposit marker, plus retained legacy calendar-link identifiers where present. The deposit marker and invoice amounts stay in ShootCal; they are not copied into the connected calendar.
- Payment history: Stripe checkout, payment, and refund identifiers, statuses, amounts, and ledger results; client reports that a manual payment was sent; your confirmation or rejection of those reports; payments you record yourself; and partial or full refunds and reversals. These records can include the amount, method, date, optional reference, and notes you enter.
- Payment-report abuse prevention: When someone submits a client payment report, ShootCal stores a full SHA-256 hash derived from a server secret and the connection IP address. The raw IP is not stored with the report. This one-way value is used only to limit repeated submissions to that invoice.
- Protected client access: Issued invoices use a high-entropy access secret. ShootCal stores a one-way hash for validation and an encrypted copy needed to let you copy the link again; the raw secret is not stored in normal request or access logs.
Card payments are processed by Stripe through the photographer’s connected Stripe account. ShootCal stores the identifiers, status, amount, and ledger result needed to show and reconcile the payment or refund, but it does not receive or store the client’s full card number or bank credentials. Manual-payment instructions, references, and notes are free-text fields, so you must not enter card or bank credentials, passwords, access codes, or other secrets in them. A client’s “payment sent” report is only a notice to you; it does not change the balance or enter the cash-received report until you confirm that the money arrived.
The hashed invoice-claim address is distinct from the existing contract e-signature audit trail: when a client signs a contract, ShootCal may retain that signer’s raw IP address and browser details as signature corroboration. A scheduled data-minimization cleanup erases those details roughly three years after the session date.
D. Instagram Feed Data (Optional)
If you connect a professional Instagram account for ShootCal Websites, ShootCal stores an encrypted Meta access token (a Page access token if you connect through Facebook, or an Instagram access token if you sign in with Instagram), the selected Instagram professional account ID, username and profile URL, and a bounded cache of the media metadata needed to render the feed you configure, plus resized copies of those posts’ images that ShootCal serves on your Website. Cached fields can include captions, locally extracted hashtags, media type, thumbnail or image URLs, post links, and timestamps. The token is not stored in Website page-builder content and is never sent to Website visitors.
If you use the separate ShootCal Social Feed plugin for WordPress, the encrypted token, selected account ID, settings, and feed cache are stored by that plugin inside your own WordPress installation. ShootCal’s broker keeps only short-lived authorization data needed to hand the token to that WordPress server. The attempt expires after ten minutes, is deleted after successful redemption, and is removed by the broker’s bounded cleanup after expiry.
2. Google API Services User Data Policy & Limited Use Disclosure
ShootCal’s use and transfer to any other app of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Our practices strictly comply with these core privacy conditions:
- Optional Calendar and Email Features: Google calendar.events and calendar.readonly support schedule sync and external busy-time checks when you choose to connect Google. Existing accounts may use Gmail sending through gmail.send for messages such as booking confirmations, reminders, contract notices, and invoices you choose to send. Gmail is not required for ShootCal’s own transactional email delivery. gmail.send does not grant access to read, modify, or delete existing emails in your inbox.
- Contact Import: Google Contacts access supports the explicit import of older clients from the ShootCal Clients group; it does not keep the saved roster synchronized in both directions. With your separate opt-in for Client Scan, contacts.other.readonly may also read Google Other contacts to suggest an email for a scanned name. You review and confirm suggestions before they are saved. These tools do not change Google contacts.
- Selected Task Import: Google Tasks access supports discovery of task lists and a one-time import of the list you explicitly select. The import leaves Google unchanged and retains an original archive. Tasks created or edited in ShootCal are saved in ShootCal, without continuous provider task sync.
- App-Created Drive Files Only: We use Google Drive (drive.file) only if you opt in, either to save a signed contract to your Drive (a copy in a dedicated ShootCal Contracts folder) or to keep recurring invoice backups (archives in a dedicated ShootCal Invoice Backups folder). The drive.file scope restricts us to files the App itself creates; we cannot access any of your other Drive content.
- No Advertising or Marketing: Google user data obtained via ShootCal is never used, transferred, or sold to third parties for serving advertisements, personalized marketing, retargeting, or interest-based profiling.
- No Profiling or Advertising Data Sharing: Google user data obtained via our app is never transmitted to external servers or third-party systems for data logging, advertising, or algorithmic profiling. Data is sent to our own server (api.shootcal.com) only as needed for user-facing features you choose to use, including the Web Calendar feed, optional AI Client Scan described in Section 4, contract e-signing and Drive archive service, online booking, and invoicing described in Section 1C, and even then it is never sold or used for ads.
- No Human Review: We do not allow human review of your Google user data. A human may only access your data if we have obtained your explicit, affirmative consent to view specific elements for technical troubleshooting or support requests.
- Strict Transfer Safeguards: We only transfer your Google user data to others if it is explicitly necessary to provide or improve user-facing features visible inside the app’s interface (such as transferring availability metadata to api.shootcal.com for your optional Web Calendar publishing feature).
3. How We Use Your Information
- Calendar Operations: Used exclusively to display, create, modify, and delete photography session events on your behalf.
- Invoices & Payment Records: Used to create and share the invoices you direct ShootCal to issue, offer Stripe card payments and your configured manual methods, let the client report a manual payment, record card payments and refunds, let you confirm or reverse money received, and prepare your reports and exports.
- Location Processing: The iPhone and iPad apps use Apple Maps for location suggestions. In the web and Mac apps, location searches pass through ShootCal’s server to Google Places to return suggestions.
- Preferences and Studio Settings: Shared session types, studio settings, and any follow-up templates saved by earlier versions are saved with your ShootCal account. Some Apple device preferences may use iCloud Key-Value Storage; local notification and display preferences remain device-specific.
- Mac app: ShootCal for Mac runs the web workspace in an app window. It keeps your sign-in in a browser cookie and remembers your window size and position on your computer. The direct-download edition checks ShootCal for app updates. Mac Quick Add uses the web processing described below.
4. Text Parsing: On-Device Quick Add & Optional AI Client Scan
On-device Quick Add. The iPhone and iPad apps can turn a line such as “Smith wedding next Saturday at 3pm” into a filled scheduling form.
- In the native iPhone and iPad apps this processing occurs entirely on-device using local, native platform text-processing built into the operating system.
- The current Mac app uses Web Quick Add, described below.
- The text you type, your calendar metadata, and your client details are never transmitted to the developer, to Google, or to any remote third-party for this on-device feature.
- This data is processed transiently in local memory and is never logged or stored externally.
Optional AI Client Scan. ShootCal offers a separate, opt-in “Scan for Clients” feature that reads your calendar event titles to suggest client names for your client list.
- When you choose to run a scan, ShootCal selects events within your requested date range and sends bounded event-title text through api.shootcal.com to Anthropic (Claude) to suggest client names. The model receives only those titles, not the date range, attendees, private notes, other event metadata, or your configured session-type names. Session-type matching stays in ShootCal. Titles themselves may contain personal information you entered.
- If you additionally enable “Find client emails,” ShootCal reads your Google “Other contacts” (names and email addresses Google auto-saved from people you have emailed) to match an email to a scanned name. You review and confirm every suggestion before anything is saved.
- The scan returns suggestions for you to review before saving clients. Web Quick Add and ShootCal Assistant also use Anthropic (Claude) through our backend, but send different inputs described below. ShootCal does not sell these inputs or use them for advertising. Requests are processed by Anthropic under its commercial API terms.
5. Third-Party Services & Data Sharing
With whom we share, transfer, or disclose your Google user data. ShootCal does not sell your data, and does not share your Google user data with any third party for advertising, marketing, or profiling. We share, transfer, or disclose Google user data only in the limited cases below, and only to provide a feature you have chosen to use:
- Google (the source APIs): Your data is read from and written to your own Google Account through the Google APIs listed below. Subject to the Google Privacy Policy.
- Meta Platforms (optional Instagram connection): If you connect Instagram, ShootCal uses Facebook Login for Business or Instagram’s own business login, together with the official Instagram API, to identify the professional Instagram account you choose and retrieve its own recent media for your configured feed. Through Facebook, ShootCal requests only the permissions needed to list Pages you can manage, read the linked professional Instagram account and media, and read basic Page information. Through Instagram, it requests only basic access to your own professional account’s profile and media. It does not request permission to publish posts, manage comments or messages, run ads, or search public hashtags. Subject to Meta’s Privacy Policy and Platform Terms.
- Our own backend server (api.shootcal.com): Stores your account-scoped appointments, clients, tasks, settings, booking records, contracts, invoices and manual-payment records, and provides optional calendar sync, availability feeds, paperwork copies to Google Drive, and AI features. AI features forward only the inputs described here to the provider named below; other integration recipients remain listed in this policy.
- Anthropic (Claude) for AI Client Scan: Only when you run a scan, bounded event-title text is processed to suggest client names for your review. Configured session types, date-range metadata, attendees, and private notes are not sent with the scan. Requests are processed by Anthropic under its commercial API terms.
- Anthropic (Claude) for web and Mac Quick Add and ShootCal Assistant: Quick Add sends your entered line, the current time, your time zone, and configured session-type names to prepare an event draft for review; it does not create an appointment automatically. Assistant sends your question and workspace context with relevant first-party help excerpts to answer it. The Assistant retains its privacy filtering and does not fetch your calendar, client roster, or paperwork as context. Information you type can itself contain personal data. Galleries and Website Builder help uses the same backend Assistant.
- Anthropic (Claude) for welcome-screen Set up with AI: Only after you choose AI setup, ShootCal sends your replies, your first name and business name, and a short setup summary: session type names, lengths and prices, booking hours and time zone, and yes or no flags for invoice settings, a saved contract and connected calendars. Relevant ShootCal help material explains the available settings. Your logo is not sent, and ShootCal does not load your client list, appointments, invoices, contract contents, sign-in tokens or payment details as setup context. Information you type in your replies can itself contain personal data. Suggestions are saved only after you approve them. ShootCal keeps the setup conversation for 30 days after your last activity, then deletes it, and also deletes it with your account.
- OpenAI for Website AI setup and updates: After you agree to use this feature, your business name and five text answers about photography types, style, introduction, location, and visitor goals are sent through our backend to OpenAI to prepare a content plan. Photos, gallery identifiers, client records, sign-in credentials, and payment data are not sent to the model. Information you type can itself contain personal data. ShootCal assembles the blocks and checks a private proposal; nothing is saved to your website or published until you choose it. ShootCal keeps account-level usage records to enforce the AI allowance and temporarily caches checked proposals for retry and recovery. Saved website drafts follow the normal website retention rules.
- Anthropic (Claude) for shootcal.com “Ask about ShootCal” chat: If you use the optional chat on our public website, the messages you type in that chat, together with the chat’s earlier replies, are sent through api.shootcal.com to Anthropic (Claude) to answer your questions about ShootCal. The chat is not connected to any ShootCal account and does not receive your calendar, clients, or Google data. ShootCal does not store chat messages; your browser keeps the conversation only for the open tab, and our server keeps a one-way hash of your network address only as long as needed to apply usage limits. Please don’t share personal details in the chat. Requests are processed by Anthropic under its commercial API terms.
- Microsoft (Optional Calendar Connection) and SMTP2GO (Transactional Email): Microsoft receives the ordinary schedule fields written to your selected calendar and supplies the calendar and busy-time data needed for the connection you choose. ShootCal’s own transactional mail service uses SMTP2GO, which receives recipient and sender details, message content, and attachments needed to deliver the message; the studio’s verified address is used as Reply-To. These services are used for the chosen functionality, not advertising. We do not sell your Google user data or disclose it to additional recipients outside the features described in this policy.
The App interacts with the following official APIs to provide its native features:
- Google Calendar API & Google Sign-In: Sign-in identifies your account. Separate optional calendar consent allows schedule sync and busy-time checks. Subject to the Google Privacy Policy.
- Google Drive API (drive.file): If you save a signed contract to Drive or enable invoice Drive backups, ShootCal creates and updates only the files it places in a “ShootCal Contracts” or “ShootCal Invoice Backups” folder. The drive.file scope means the App can only see and manage files it created; it has no access to your other Drive files. Subject to the Google Privacy Policy.
- Apple Maps: Provides location suggestions in the iPhone and iPad apps. Subject to the Apple Privacy Policy.
- Apple iCloud Infrastructure: Some Apple device preferences, such as sun location, may sync between your personal devices. Shared session types and your saved client list are stored in ShootCal. Subject to the Apple Privacy Policy.
- Google Tasks API (Optional Import): Reads task lists for discovery and the list you explicitly choose for a one-time copy and original archive. It does not provide ongoing sync for your saved ShootCal tasks. Subject to the Google Privacy Policy.
- Anthropic (Claude) API: Client Scan, web Quick Add, ShootCal Assistant, welcome-screen Set up with AI, and the public website chat use our backend’s shared Anthropic (Claude) service. Each sends only the inputs described in Sections 4 and 5. Review generated suggestions before saving or acting on them.
- OpenAI API: Website AI setup and updates send only the business name and approved text answers described in Section 5. The Website AI request uses no external tools, and your existing website content and photographs are not sent as model context.
- AI data handling: Provider processing is separate from ShootCal’s own storage and deletion practices, which are described in this policy. Review generated content before saving or publishing.
6. Data Storage, Security & Backend Limitations
- ShootCal Web Services: Account-scoped appointments, clients, tasks, shared settings, booking records, contracts, and invoices are stored on our server to provide the studio features you use. Optional provider connections and AI features process the inputs described above. The public availability feed contains only privacy-stripped timing information and never contains your contacts, email tokens, or client personal details. An issued invoice’s content, selected manual payment instructions, and available Stripe payment buttons are visible only through its protected client link.
- No Activity Tracking: Advertising measurement does not monitor calendar entries, contacts, clients, gallery content, or activity within authenticated ShootCal tools. Public-site measurement and one-time signup measurement are described below.
- Website Measurement: Our public marketing website uses Google Analytics, Google Ads, ChatGPT Ads, and Meta (Facebook and Instagram) to measure visits and advertising results. Google, ChatGPT Ads, and Meta may each record one signup after our server confirms a genuinely new studio. Meta receives a PageView from the public landing page and a CompleteRegistration for an eligible new signup; a free signup is not reported as a purchase or given a revenue value. There is no general analytics in the authenticated app. Calendar, contacts, clients, and gallery content are excluded. ChatGPT Ads runs in an empty sandboxed document that cannot read the app or public page content, and we do not supply names, email addresses, or other customer matching data. Meta’s landing-page measurement uses an explicit image request without its JavaScript SDK, advanced matching, form scraping, or automatic events. Signup measurement runs in a separate document and does not receive the authenticated app’s content. Those requests include the event, a clean public ShootCal URL, and browser or ad-click identifiers when available. Like other web requests, they also disclose network information such as your IP address and browser headers to the recipient.
- Marketing Measurement Choice: Your choice is stored for 180 days in the first-party sc_reddit_consent cookie shared across ShootCal subdomains. The legacy name preserves existing choices. The sc_marketing_v cookie records the provider notice version; earlier explicit Google-only grants require a renewed choice before ChatGPT Ads or Meta loads. The same choice controls public measurement and new-studio conversions. No thanks stops future ChatGPT Ads and Meta measurement and prevents public Google measurement on subsequent page loads. Where required, measurement waits for Allow. Elsewhere, regional defaults may allow it. Use Privacy choices in the footer to change your decision. With measurement allowed, sc_chatgpt_oppref stores the ChatGPT ad click identifier for up to 30 days to preserve attribution through signup across ShootCal subdomains. Meta uses first-party _fbp (browser identifier) and _fbc (Facebook ad-click identifier, only after an ad click) cookies for up to 90 days, shared across .shootcal.com so an allowed landing visit can be attributed through signup. Declining removes these attribution cookies. ChatGPT events are opted out of future user-level personalization.
- Cryptographic Security: All API communications are strictly encrypted using HTTPS / TLS protocols. Calendar-provider connections are managed on the website and stored encrypted on ShootCal’s server. Native apps retain their ShootCal sign-in session on the device.
7. Data Retention & Deletion
ShootCal stores your appointments, client roster, tasks and follow-up plans, session types, booking requests, contracts, invoices, payment reports, confirmed payments, and reversals on its server while your account remains active. An optional Google or Microsoft connection lets you choose a connected calendar for an appointment’s schedule copy and supports external busy-time checks. Appointments can remain in ShootCal only. Those records are used to provide the Service and are not sold or used for advertising. Calendar, device, and server-side data are handled as follows:
- Connected Calendar Copies: Copies in Google or Microsoft are subject to that provider’s retention controls. Deleting an appointment in ShootCal retains a canceled record for history; cancellation of a linked calendar copy is a separate sync result and may require review. Disconnecting a provider does not delete your saved appointments or calendar copies already created there.
- Local Device Storage: Cached views and recovery records are separate from your saved account data. Signing out ends the active login; it does not establish that every recovery archive, cloud preference, or device credential has been erased. Use the applicable controls for local recovery records. To request deletion of your ShootCal account, use the account deletion page linked below; contact support@shootcal.com if you cannot sign in. Uninstalling the app is not a request to delete your ShootCal account.
- Apple iCloud Storage: Synced configurations persist within your secure private iCloud allocation for as long as your Apple Account remains active and the App is installed on at least one associated device.
- ShootCal Server: Account-scoped web records remain in ShootCal’s database until the related record or account is deleted where the Service permits. Voids and payment reversals intentionally preserve the original invoice and ledger history instead of silently rewriting financial records. Drafts may be deleted, and a void invoice may be permanently deleted only when it has no payment, refund, client-report, Stripe, booking, or uncertain-delivery history. Sign in to your existing account to request account and associated data deletion using the link below. Your request is recorded as pending for manual review; submitting it does not immediately erase data, cancel billing, or revoke Google or Microsoft access. Export records and download photos you need before deletion, and review subscriptions with the service that bills you. We review requests on business days, acknowledge them within two business days, and complete eligible deletions within 30 days of the request. When an operator processes deletion, account access closes and protected account data and files remain restorable for 30 days. Permanent cleanup follows after this recovery window, subject to required record retention and any unresolved cleanup safeguards. Copies of deleted data can remain in our server backups until those backups expire, usually within about six months. We retain financial records only when required. Requests involving financial records or payment connections need a separate review and deletion plan; the operator explains what must be retained, why, and any remaining steps or blockers. A pending request is not confirmation that deletion is complete. Contact support@shootcal.com for help with an existing request or if you cannot sign in. Request account deletion
- Instagram Connections: Disconnecting Instagram on the Website screen in ShootCal Galleries immediately removes the encrypted token, selected account identity, pending connection attempts, and cached Instagram media, including ShootCal’s stored image copies, while leaving your ShootCal account and Website content in place. A copy already saved in a visitor’s browser can last up to a day. In the WordPress plugin, choose Disconnect and clear cache to remove its locally encrypted token, selected account ID, connection state, refresh status, and cached feed; the plugin’s resized image copies in your site’s uploads folder are removed at the same time, and uninstalling the plugin removes all remaining plugin options and its scheduled refresh job. If you signed in with Instagram and later remove ShootCal from your Instagram settings or ask Meta to delete your data, ShootCal deletes the same Website connection data automatically when Meta notifies it. Complete instructions are available at https://shootcal.com/data-deletion/.
8. Your Rights
You can review, modify, or completely terminate ShootCal’s permissions at any time. To revoke Google access instantly, navigate to your Google Account Security settings and remove access for ShootCal. To revoke Meta access, remove ShootCal from Facebook’s Apps and Websites settings or from Instagram’s Website permissions settings, and use the applicable disconnect control described at https://shootcal.com/data-deletion/ to delete ShootCal’s or your WordPress site’s saved connection data. You can also purge local app states by signing out of your profile inside the application settings.
9. Children’s Privacy
The App is not intended for use by individuals under the age of 13. The developer does not knowingly collect or request personal information from children.
10. Contact Information
If you have any questions or require legal or technical clarifications regarding this policy or how data is processed, please contact:
- Developer: Ryan Smith
- Email: support@shootcal.com
- Mailing Address: 151 Empyrean Cir, Myrtle Beach, SC 29588
- Business Phone: 843-352-8640
Try ShootCal for your next booking
Start free with scheduling, studio tools, and client galleries.
