Save a calendar revision
apply_feed_changesSave one revision to one existing calendar feed owned by the connected account. Submit one fixed-schema change set with up to 250 event changes and/or a feed title or description change; all stored calendar changes commit together in one transaction, or none are saved. The input schema declares every supported change: add creates an event; update changes selected fields or uses reset_fields to restore saved field baselines; delete marks an existing event canceled without permanently erasing it; restore reinstates that same event and may update selected fields; feed_patch changes only the calendar title or description. No dynamic operation discovery, fetched schemas, arbitrary commands or arbitrary endpoints are supported. First use dry_run=true to validate and preview the change set without saving, advancing the revision or spending credits. Show the returned before/after changes and any billing quote, not an invented summary. Obtain approval for a proposed schedule revision before saving it with dry_run=false. Save with the returned preview_receipt and the identical feed_id, expected_revision, request_id, operations and feed_patch. The receipt binds that validated preview, not user consent. Changed proposals or expired previews require a new preview and approval; revision conflicts require reading the feed again before preparing a new preview. Preserve omitted events/fields. For revised PDFs/documents, read the complete unfiltered feed before cancellations, preserve unrelated events and manual fields, and ask when an event match is uncertain. Update matched event IDs; a duplicate add is not an update. Use set with null to clear nullable fields; reset_fields restores saved baselines, not empty values. Use the last read expected_revision to prevent overwriting concurrent changes. On uncertain save retry the identical request_id and payload, including the original preview_receipt, never a new one. Subscribers save without billing prompts. If billing requires one credit, show the deduction and balance and obtain explicit user authorization before setting confirm_credit_charge=true; this explicit authorization may be added after preview. Default automations must not authorize credit spending. publication.status reports calendar-file preparation, not subscription access. Check distribution_ready for access at the reported revision; use get_feed_status for current availability. Preview proposals are recoverable for up to one hour; expired drafts are removed automatically. Previewing does not write calendar events or advance their revision. Display the returned feed_id and request_id alongside the preview summary so this exact proposal can be recovered. If the receipt or exact proposal was lost, call this same tool with only feed_id, the original request_id, dry_run=true and recover_preview=true. Do not reconstruct missing changes from memory, guess a key or choose a latest preview. Recovery returns the original unexpired preview and exact save_arguments without extending its expiry, saving or spending credits. Show that recovered preview and obtain fresh approval before submitting its save_arguments unchanged; confirm_credit_charge remains false unless the user explicitly authorizes the current quoted charge. Recovery is not consent. If recovery returns saved=true, those changes were already saved: report that result and stop; do not submit a new save. If no recoverable preview remains, read the feed, prepare a new preview with a new request_id and obtain approval. Never silently substitute a changed proposal. These tools manage Smart Calendars feeds only; they cannot access mailboxes or start source monitoring, scheduled PDF checks or document refreshes. For requests solely for those unsupported actions, explain the limitation without reading feeds or substituting an edit. For unsupported mailbox requests, offer to work with schedule content the user chooses to provide instead. General ICS explanations need no account access. When sharing a feed or filtered_subscription with distribution_ready=true, offer "Open in calendar app" using that object’s HTTPS subscription_open_url (it redirects to webcal), and "Calendar options" using its subscription_options_url for Apple/default, Google, Outlook and copy-link choices. Retain subscription_url as a copyable HTTPS fallback. Prefer these HTTPS handoff links over putting subscription_webcal_url directly in chat, because some clients do not preserve clickable webcal links. If a handoff URL is absent, use the HTTPS subscription_url and dashboard subscription controls instead. Offer "View or edit" using the feed’s manage_url. For a filtered selection use the nested filtered_subscription links, not the unfiltered feed links. Use the returned URLs exactly; never invent or rewrite their host, path or token. Opening a link does not confirm a subscription; the user must confirm in their calendar app. Do not present inactive or unpublished feeds as ready to subscribe.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| feed_id | Yes | Feed identity returned by a previous feed tool; used to address the selected calendar only. | |
| feed_patch | No | ||
| operations | No | ||
| request_id | Yes | Generate an opaque key for this save and reuse it unchanged for retries, to prevent duplicate changes. Not a user identifier, chat/session ID, or telemetry. Do not include personal data. | |
| preview_receipt | No | Opaque receipt returned by a successful dry_run=true preview. Required when saving with dry_run=false. Return it unchanged with the same feed, revision, request_id and proposed changes. It is not user approval. | |
| recover_preview | No | Read the exact temporarily stored preview after losing its receipt or proposal. Requires dry_run=true and only feed_id and the original request_id; omit all other arguments. Does not save, extend expiry or authorize a charge. Show the recovered preview and obtain fresh approval before saving. Never guess a request ID or select a latest preview. | |
| expected_revision | No | Last read feed revision; prevents overwriting concurrent edits. | |
| confirm_credit_charge | No |