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

# Create an event

> Add a timed, all-day, or unscheduled event to your calendar

Put anything on your calendar in under a minute: a lesson, a gig, a vacation, or a plain block of time. Decide up front whether it's billable; the rest you can change later.

## Create a timed event

A timed event has a start and end time and sits in the week grid.

<Steps>
  <Step title="Open the event modal">
    There are three ways to start:

    * Click **Create event** at the top right of the calendar.
    * Click an empty slot in the grid, and the modal opens with that time filled in.
    * Click and drag across the grid to draw a time range, and the modal opens with that span filled in.

    On mobile, tap the pencil icon in the header.
  </Step>

  <Step title="Fill in the details">
    Give the event a title and check the start and end times. The color dot sets how it looks on the grid. If it should repeat, pick a pattern from **Repeat** (see [Set a repeat](#set-a-repeat)); if it's a lesson or something you'll charge for, turn that on now (see [the toggles below](#make-it-a-lesson-or-charge-for-it)).
  </Step>

  <Step title="Save">
    Click the check to save. The event appears on the grid right away.
  </Step>
</Steps>

## Create an all-day event

An all-day event spans whole days and sits in the strip above the grid, useful for trips, holidays, or studio closures.

<Steps>
  <Step title="Start a new event">
    Click **Create event**, or click and drag across the all-day strip at the
    top of the grid to set the date range.
  </Step>

  <Step title="Turn on All day">
    Switch on **All day**. The time pickers disappear and the event becomes a
    day-based block.
  </Step>

  <Step title="Set the span and save">
    For a single day, leave the dates as they are. For a multi-day block, set
    the end date later than the start. Click the check to save.
  </Step>
</Steps>

## Make it a lesson, or charge for it

Two toggles in the modal change what an event is. Set them when you create it.

* **Lesson** (the **book** icon, **Enable Lesson**): attach students with the **Add students** picker. A lesson tracks attendance and notes, and needs at least one student to save. It turns on **Payment** at the same time, since lessons are usually billed: set the **rate** by typing an amount or picking a [rate preset](/docs/settings/rate-presets). Every student on the lesson is charged that rate when you mark attendance. See [Run a lesson](/docs/lessons/operate-a-lesson).
* **Payment** (the **dollar** icon, **Enable Payment**): charge for an event that isn't a lesson, like a paid gig, a recital, or a workshop. Set a **rate**. Nothing bills automatically the way a lesson does; after saving, record the charge or the payment from the event itself. [How billing works](/docs/billing/how-billing-works) covers where that money shows up.

A rate applies to the whole event, and to every occurrence of a repeating one (edit a single occurrence to change just that date). Once a lesson has been charged, its rate locks; void the charge first to change it.

<Note>
  Decide up front whether an event is a lesson, a paid event, or neither. The **Lesson** and **Payment** toggles lock once the event is saved, so you can't change them afterward.
</Note>

## Set a repeat

Any event, timed or all-day, can repeat. Pick a pattern from the **Repeat** dropdown when creating the event:

| Option        | What it does                                                                                                                                                                                                                                                     |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Once**      | Doesn't repeat.                                                                                                                                                                                                                                                  |
| **Daily**     | Every day.                                                                                                                                                                                                                                                       |
| **Weekly**    | Every week on the same weekday as the start date.                                                                                                                                                                                                                |
| **Bi-weekly** | Every two weeks on the same weekday as the start date (every 14 days anchored to that weekday, not every other lesson).                                                                                                                                          |
| **Monthly**   | Every month on the same date as the start date.                                                                                                                                                                                                                  |
| **Custom**    | Your own pattern: every 1 to 99 days, weeks, months, or years. Weekly patterns can pick several weekdays (Tuesdays *and* Thursdays); monthly can anchor to the date or a position (the second Tuesday). End it never, on a date, or after a set number of times. |

## FAQ

<AccordionGroup>
  <Accordion title="Why won't my lesson save?">
    A lesson needs at least one student. Add a student in the **Add students**
    picker, then save.
  </Accordion>

  <Accordion title="My event times look an hour off">
    The calendar uses your **studio timezone**, not your browser. Check it in
    **Settings → Profile**.
  </Accordion>
</AccordionGroup>
