> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Auto Schedule Overview

> Create a schedule for future posts to automatically be published

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "basic") {
      displayPlans = ["Basic", "Premium", "Business", "Enterprise"];
    } else if (lowerCasePlan === "business") {
      displayPlans = ["Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Auto scheduling allows you to create pre-defined posting schedules.
You can set up multiple schedules, each with specific posting times on chosen days.
Auto schedule is distinct from the `scheduleDate` field in the [Publish Post endpoint](/apis/post/post).

## Key Features of Auto Schedule

<ul class="custom-bullets">
  <li>Create custom schedules, e.g., post at 9 AM, 2 PM, and 5 PM on Mondays and Wednesdays.</li>
  <li>Posts are automatically queued in the next available time slot.</li>
  <li>No limit on the number of schedules you can create.</li>

  <li>
    Auto schedule is distinct from the `scheduleDate` field in the [Publish Post
    endpoint](/apis/post/post) and it is meant to automate scheduling. You should use either auto
    schedule or `scheduleDate`, but not both.
  </li>
</ul>

## Example Auto Schedule Scenario

1. Current time: Monday, 10 AM (GMT).
2. You create an auto schedule for posting at 9 AM and 5 PM.
3. You add three posts to this schedule.
4. The system automatically schedules these posts for: Monday at 5 PM, Tuesday at 9 AM, and Tuesday at 5 PM.

<Info>
  Deleting a scheduled post doesn't free up its time slot. For example, if you delete the Monday 5
  PM post and add a new post to the same schedule, it will be placed in the next available slot (in
  this case, Wednesday at 9 AM).
</Info>

## Publish Using Auto Schedule

The schedule may be applied with the [Publish Post endpoint](/apis/post/post) using the following fields:

```json Auto Schedule theme={"system"}
"autoSchedule": {
   "schedule": true, // required
   "title": "Schedule Title" // optional - case-sensitive
}
```

<ul class="custom-bullets">
  <li>
    `schedule`: (required) A Boolean value that must be set to `true` to enable auto scheduling.
  </li>

  <li>
    `title`: (optional) A String value that specifies the name of the schedule. This `title` should
    match the name of a schedule created using the [Set Auto Schedule](/apis/auto-schedule/overview)
    endpoint. If not provided, the default title is `default`. Note that the `title` is
    case-sensitive and must be an exact match.
  </li>
</ul>

See your list of auto schedules by calling the [List Auto Schedules](/apis/auto-schedule/list-schedule) endpoint.

Please see this article on [using the auto scheduling API](https://www.ayrshare.com/understanding-the-ayrshare-auto-schedule-api-endpoint/) for more information.

## User Profile Auto Schedule

Auto schedule for a particular user profile by [adding the PROFILE\_KEY in the header](/apis/overview#profile-key-format).
