Your documents and privacy
Updated October 24, 2026. PDF to Calendar is an experimental service operated by Tanfujun Studio.
What stays in your browser
Choosing a file renders a preview on your device. Manual editing, sample events and calendar export run in your browser. We do not save your document or events to browser storage: refreshing or closing the page clears your work. Downloaded files remain on your device until you remove them.
When you choose cloud extraction
Only after you agree and click Extract do we send the rendered page images, extracted PDF text, schedule time zone, optional person filter and optional year hint to our Cloudflare Worker. It first checks whether the PDF text is a supported month-by-month calendar with explicit dates. When that format can be read directly, no AI request is made. Otherwise those page images, text and context are sent to Cloudflare Workers AI. Read the Cloudflare Workers AI data policy. We use standard inference without AI Gateway logging or content caching. We do not write your documents, extracted event contents or person filter to our database or application logs. Cloudflare processes requests under its own terms and may retain operational metadata and information required for legal or security purposes.
Limits and operational records
To enforce the free beta allowance, we use your connection IP address to compute an identifier that changes each UTC day using a secret salt. Our quota database stores that identifier, dates and counters, rather than the raw IP. We also keep daily aggregate success/failure and token counts. These records are scheduled for deletion after at most eight days. Cloudflare separately handles network information needed to host and secure the website.
Website analytics
On calendar.tanfujun.com we use Cloudflare Web Analytics to measure page visits and loading performance. Its script sends page and referrer information, browser/device characteristics and performance measurements to Cloudflare. Cloudflare receives connection information needed to deliver the script and accept those measurements. Web Analytics does not use cookies or local storage to identify you or track you across websites. We do not send your uploaded files, document text, event titles, editing fields or calendar file contents to Web Analytics, and this loader does not read those contents. Learn more in Cloudflare’s Web Analytics documentation.
We do not load the analytics script when your browser signals Do Not Track or Global Privacy Control, or when a page URL includes qa=1. Analytics is also disabled on local development and preview hosts. You can visit the tool with analytics disabled; keep ?qa=1 on each page you visit to continue opting out. Blocking analytics does not prevent document preview, manual editing or calendar export.
Optional task measurements
On the production tool we separately count file preparation, extraction attempts and outcomes, completion of the review checklist, and generation of a calendar file. We store only daily aggregate counts, the sample/manual/PDF-text/AI path, a coarse source such as YouTube, a tagged Google Ads link, SaaSHub or unknown, fixed error codes and broad duration ranges in our own Cloudflare D1 database. We do not store file names, original documents, event contents, email addresses, full page/referrer URLs or visitor/session identifiers with these measurements. No cookies or browser storage are used for them. These are action counts, not unique people or confirmation that a file was saved or imported.
When you follow a marked link between our guide and tool, we can carry a fixed source label such as source=youtube in that link. We do not copy arbitrary campaign text or full referrer addresses, and we do not use cookies or browser storage for this handoff. Source labels are omitted for Do Not Track, Global Privacy Control and qa=1; marked links also preserve qa=1. A source label is a hint, not proof of who used the tool. For optional task measurements, Google Ads is a separate category only when the link carries the fixed label source=google_ads. Other Google referrals may include untagged ads. We do not use ad click identifiers for these measurements.
Optional task measurements are skipped for qa=1, Do Not Track and Global Privacy Control. Independent abuse prevention and aggregate operational/token counters still run when you request cloud extraction; opting out does not bypass free beta limits. The event endpoint has separate connection limits using the same daily rotating IP-hash method as extraction. Aggregate task counts and connection-limit records are scheduled for deletion after at most eight days. We also keep the installation timestamp for this measurement system and the timestamp of its last successful retention-cleanup task.
Your choices
You can use manual entry or the clearly marked sample without sending a document for AI extraction. Use Clear to remove the current document and events from this page. Extraction may be inaccurate; check each event against the original before downloading. Only upload documents you are allowed to share for this purpose.
Contact
For beta questions or privacy requests, write to our shared studio support mailbox: draftdeck@tanfujun.com. This mailbox also supports DraftDeck. Support emails are handled by Cloudflare Email Routing and Gmail; replies currently come from a Gmail address.