> ## Documentation Index
> Fetch the complete documentation index at: https://help.pipelime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Weekly hours and date overrides

> Set the hours a link can be booked, copy them across days, and block or change a single date.

export const UiPath = ({children}) => {
  const parts = String(children).split(/\s*(?:→|>)\s*/).filter(Boolean);
  return <span className="pl-path">
      {parts.map((part, index) => <span key={`${index}-${part}`}>
          {index > 0 && <span className="pl-path__sep">→</span>}
          {part}
        </span>)}
    </span>;
};

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

The **Availability** card on a meeting link's settings page sets the hours it can be booked: a weekly grid you can copy across days, plus one-off date overrides that replace the grid for a single date.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Meetings<span className="pl-path__sep">→</span>Meeting Links</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to Meeting Links <code>read-meeting-links</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-meeting-links</code> to add one, <code>update-meeting-links</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

## Before you begin

* A meeting link already saved. If you haven't made one yet, start with [Create a meeting link](/en/meetings/create-a-meeting-link).

## Steps

<Steps>
  <Step title="Open the Availability card">
    Open <UiPath>Meetings → Meeting Links</UiPath> and open the link you want to change. Further
    down its settings page, past Hosts, the **Availability** card holds three things: an
    **Availability timezone** field, which opens on your browser's own timezone unless the link
    already has one saved, then **Weekly hours** and **Date overrides** below it. Every hour you
    set here is read in the link's own timezone, not the booker's.
  </Step>

  <Step title="Set the weekly hours">
    Below the timezone sits one row per day, Monday first, each with its own on/off switch.
    Switching a day on gives it a single interval to start from, which you can edit to whatever
    hours you want. Switching it off replaces that day's hours with **Unavailable**: the row stays
    in the grid, but the day now carries no hours at all, and nothing can be booked on it.

    A day can hold more than one interval. **Add interval** (1), on the last interval in a day,
    adds another that starts exactly where that one ends and never runs past the end of the day.
    Each interval has its own **Remove** icon.

    **Copy times to…** (2), on the right of every day, opens a small menu listing the other six
    days as checkboxes. **Apply** (3) stays disabled until you tick at least one of them, then it
    overwrites every day you ticked with an exact copy of that one day's intervals, whatever they
    were before. Every day has the icon, including a day that is switched off, so copying from one
    of those empties the days you ticked and switches them off too.

    <Screenshot id="meetings/availability-and-date-overrides--weekly-hours" url="/meeting-links/1847" alt="The weekly hours grid: Monday with two intervals, Wednesday with shorter midday hours, Saturday and Sunday marked Unavailable, and the Copy times to… menu open from Monday listing the other days and an Apply button" caption="Copy times to… replaces the target days' hours outright: whatever they had before is gone, not merged with what you copied." marks={[{ n: 1, x: 57, y: 20 }, { n: 2, x: 68, y: 20 }, { n: 3, x: 62, y: 48 }]} />
  </Step>

  <Step title="Block or change a single date">
    **Add date override**, at the foot of the **Date overrides** block, opens a dialog: a calendar
    that will not let you pick a day in the past, a **Block this day** switch, and, while that
    switch is off, the same start/end interval fields as the weekly grid, prefilled with one
    interval you can edit.

    **Save** (1) stays disabled until you have picked a date, and, if you have left the day
    unblocked, until it has at least one interval. Picking a date that is already on your list of
    overrides replaces the earlier entry for that date instead of adding a second one.

    <Screenshot id="meetings/availability-and-date-overrides--date-override" url="/meeting-links/1847" alt="The Add a date override dialog: a date picker, a Block this day switch turned off, and a single interval editor below it, prefilled with default start and end times" caption="Blocking a day here overrides the weekly grid completely for that date, even on a day the grid already has open." marks={[{ n: 1, x: 88, y: 95 }]} />
  </Step>

  <Step title="Review your date overrides">
    Every saved override sits in a list above the **Add date override** button, sorted by date,
    each showing either a **Blocked** chip or the interval times you gave it, with a **Remove
    override** icon of its own. Until you add one the block reads **No date overrides yet**.

    An override always wins over the weekly grid for that date, whether it blocks the day outright
    or just sets different hours. On any date you have not overridden, the weekly grid decides.
  </Step>
</Steps>

## What happens next

None of this saves on its own. The weekly hours, any copy you applied and every date override stay
in the form until you save the whole meeting link.

<Check>
  The link saves, a success message appears, and you land back on the Meeting Links list.
</Check>

If no weekly day and no date override carries any hours, or an interval ends at or before its own
start time, the save is blocked instead and the problem is shown under the weekly hours grid. A
collapsed **Availability** card reopens itself and picks up a small red dot on its header until
it's fixed.

Saving also tidies the override list: any override whose date has already gone past is dropped as
the link is stored, so reopening the link shows only the dates still ahead of you.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Enable at least one weekly day or add a date override with hours">
    The save is blocked with this message when every day in the weekly grid is switched off and no
    date override carries any hours either. A date override that only blocks a day does not count,
    since it has no hours of its own. Turn at least one weekday back on, or add a date override
    with an actual interval on it.
  </Accordion>

  <Accordion title="Each interval must end after it starts">
    One of your intervals, in the weekly grid or in a date override, has an end time at or before
    its own start time. Fix that interval's end field; the message clears once every interval on
    the form ends after it starts.
  </Accordion>

  <Accordion title="Every weekday shows the same single time range">
    That is how a link is stored when you create it from the Meeting Links page: one
    Monday-to-Friday window, applied whole to each of those five days, with no room for a second
    interval, a day that differs from the rest, or any date override. The grid on this screen is
    that window unpacked so you can edit it.

    Saving the link from this form is what changes the storage over to the grid, whether or not
    you changed anything first. From then on each day keeps its own hours and the link can hold
    date overrides.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Create a meeting link" icon="calendar-plus" href="/en/meetings/create-a-meeting-link">
    Where a new link's Monday-to-Friday default hours come from, and how to rename it and set its URL.
  </Card>

  <Card title="Hosts: round robin vs collective" icon="users" href="/en/meetings/hosts-round-robin-and-collective">
    How bookings are shared between hosts, and what changes when a host hasn't connected a calendar.
  </Card>

  <Card title="Limits, email reminders and custom questions" icon="list-checks" href="/en/meetings/limits-reminders-and-questions">
    The notice period, booking caps, reminder emails and custom questions, field by field.
  </Card>
</CardGroup>
