Scheduled publishing (deprecated)
Enhanced object navigation and full-screen editor view
v4.17.0
✨ Highlights
Enhanced object dialog
The enhanced object dialog is now switched on by default.
In order to opt out: Change / add the property beta.form.enhancedObjectDialog.enabled in your studio configuration (usually found in sanity.config.ts) and set it to false.
{
// ...
beta: {
form: {
enhancedObjectDialog: {
enabled: false,
},
},
},
}Full-screen editor view
You can now maximize the editor pane! By pressing the button on the header you now have a cleaner single pane experience for any document!

Other features
- The
onCompletecallback forDocumentActionComponenthooks are deprecated and considered harmful for performance. Use local state instead, for example callsetDialogOpen(false)in dialogonCancelattributes instead ofonComplete. scheduledPublishing.showReleasesBanneris now deprecated. When both Scheduled Publishing Plugin and Scheduled Drafts are enabled, Scheduled Drafts will default to being used for scheduling.
🐛 Notable bugfixes
- Creating a scheduled draft will now discard the existing draft version after scheduling has been created
- Removed errant scheduled draft existence warning banner
- Fixed issue causing object array items to sometimes be invisible
- Optimizes rendering of document actions so they're only rendered once, instead of 3x
Scheduled Drafts
v4.14.0
✨ Highlights
Scheduled drafts
Sometimes you want to schedule a single draft to go live, but don't need the full power of content releases. Scheduled drafts allows content editors to schedule, and lock, a single document. It shows up as a special type of content release and is visible for other editors to see.
This feature is enabled by default for all paid plans. See the Scheduled drafts documentation for details.
Media Library Asset Function
The first Media Library Sanity Function type is now available. See the Functions changelog entry for details.
Other changes
- It is now possible to disable the built-in Markdown shortcuts plugin for the Portable Text Input.
- Improved visibility for the file drop message on large arrays inputs
Scheduled Publishing moved into Sanity Studio core ++
v3.39.0
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
Scheduled Publishing is now part of the core Sanity Studio package
The Scheduled Publishing feature, which up until this release has been available as a plugin for Sanity Studio, has been moved into the core sanity package and enabled by default. Scheduled Publishing is available on all paid plans and trials.
If you wish to opt out of Scheduled Publishing, you can do so in your Studio configuration
// sanity.config.ts
export default defineConfig({
// ....
scheduledPublishing: {
enabled: false,
}
)Go to docs and feature announcement blog post to learn more.
Migrating from the Scheduled Publishing plugin to the new built-in configuration:
If you are already using Scheduled Publishing plugin, the first step is to get rid of it and update your studio to the latest release. If you already updated your studio you might have gotten an alert about this.
Run the following command in your project root to uninstall the plugin:
npm uninstall @sanity/scheduled-publishingIf you are already using Scheduled Publishing plugin, the first step is to get rid of it and update your studio to the latest release. If you already updated your studio you might have gotten an alert about this.
Run the following command in your project root to uninstall the plugin:
npm uninstall @sanity/scheduled-publishingNext, remove the plugin from your studio configuration. Typically you'll find this in ./sanity.config.ts|js. Find the scheduledPublishing plugin and do the following changes in your configuration file:
Before:
import {scheduledPublishing} from '@sanity/scheduled-publishing'
export default defineConfig({
//....
plugins: [
scheduledPublishing({
// e.g. 12/25/2024 6:30 AM
inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
})
]
})After:
- import {scheduledPublishing} from '@sanity/scheduled-publishing'
export default defineConfig({
// ...
plugins: [
- scheduledPublishing({
- inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
- })
],
+ scheduledPublishing: {
+ enabled: true,
+ inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
+ }
})If you used any of the plugin's exports, you can now import them directly from the Sanity package. For example:
- import { ScheduleAction, resolveDocumentActions } from "@sanity/scheduled-publishing"
+ import { defineConfig, ScheduleAction, resolveDocumentActions } from "sanity"🐛 Notable bugfixes
- Fixes a bug that caused negations to be transformed to wildcard search prefixes if they appeared at the end of a search query.
- Improves error handling when attempting to run a migration against invalid project configurations.
- Fixes an issue where a document's validation panel would show a system error message when a field with a validation error was deleted.
- Fixes a bug that caused
_typeto be incorrectly parsed from statements in thefilterparameter of document lists. - Fixes an issue that sometimes caused the Studio to load indefinitely when visited from a task notification email.