> For the complete documentation index, see [llms.txt](https://docs.flylogs.com/fcom/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flylogs.com/fcom/schedules/self-scheduling.md).

# Self scheduling

Pilot self scheduling for clubs and small schools

Flylogs enables you to establish automated scheduling with specific restrictions for your pilots. You have the flexibility to determine who can utilize the auto-scheduling feature, which aircraft can be assigned, and additional conditions such as minimum booking time and the requirement for a Flight Instructor.

### Initial setup

Within your company settings page, you'll discover the general Schedule settings. Here, you can configure settings that will be applicable to all schedules and users. You have the option to specify the time frame before a flight during which pilots can cancel a schedule. Additionally, there are checkboxes that allow you to decide whether you require both the PIC (Pilot-in-Command) and SIC (Second-in-Command) to confirm the scheduled flight.

[In the second part of this settings box, you can limit the self scheduling options.](#user-content-fn-1)[^1]

{% hint style="info" %}
Remember that self scheduling has to be enabled on each aircraft!
{% endhint %}

You have the flexibility to decide whether you want to restrict the reservations times or prevent pilots with insufficient billing credit. Furthermore, you can set the maximum number of reservations per day, the default length of the slot and define minimum and maximum slot durations as well.

![](https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-03f2d6e7eb3fd3ad42f6a61738699b3872c66552%2FscheduleSettingsPage.png?alt=media)<br>

### Restrict self-booking to pilots with valid certificates

At the bottom of the self-scheduling section you will find the **Allow self-booking without valid documents** toggle. It controls whether a pilot whose personal certificates are missing or expired can still **complete** a booking.

The self-booking widget itself is **always visible**, and a pilot with missing or expired documents is **always warned** in the booking modal. What the toggle changes is whether that warning stops the booking:

* **Toggle OFF (default — stricter)**: the warning is shown in red and the **Book this Slot** button is disabled. The pilot has to update their documents on their profile page before they can book.
* **Toggle ON (permissive)**: the same warning is shown in amber, for information only, and the pilot can go ahead and book. Use this option if your operation handles document checks outside Flylogs or you are still onboarding pilots that have yet to upload their paperwork.

The toggle only has an effect when **Require pilot documents** is enabled in the company settings. If your company does not require pilot documents at all, self-booking is never blocked by certificates.

| Require pilot documents | Allow self-booking without valid documents | Pilot with invalid documents |
| ----------------------- | ------------------------------------------ | ---------------------------- |
| Off                     | (any)                                      | Warned, **can book**         |
| On                      | On                                         | Warned, **can book**         |
| On                      | Off                                        | Warned, **cannot book**      |

{% hint style="info" %}
**Student Pilots are exempt from this certificate gate.** A student never acts as PIC — the system automatically assigns a Flight Instructor as PIC — so the student's own licence, rating and medical are not required to book.
{% endhint %}

{% hint style="info" %}
This setting governs **self-booking only**. The separate `Block PIC without documents` setting applies to manager schedule edits and flight dispatch, not to the self-booking widget. Currency requirements and billing-credit checks continue to apply independently.
{% endhint %}

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-bb6bb789991cb1545bb48854f3f1126673c74ab4%2FselfScheduleNoBalance.png?alt=media" alt=""><figcaption><p>Pilots with insufficient balance see this warning and cannot book a flight.</p></figcaption></figure>

### Aircraft setup for Self Scheduling

You need to activate self scheduling on each aircraft.

On the aircraft edit page, open the **Scheduling** box and tick **Allow pilots to self-schedule flights on this aircraft**.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-a93c72ab18e81b0fb4b919ad2078d797101437e1%2FaircraftSelfScheduleAccess.png?alt=media" alt=""><figcaption><p>Enable self-scheduling and choose who can self-schedule on the aircraft edit page.</p></figcaption></figure>

Once self-scheduling is enabled, the **Who can self-schedule** dropdown appears. It controls which user groups may self-schedule this particular aircraft:

* **All pilots and students** (default): every Student Pilot and above.
* **Certified pilots**: Pilot and above; Student Pilots excluded.
* **Only instructors**: Flight Instructor and above.
* **Only selected pilots**: nobody but the pilots you tick on this aircraft — see [Reserving one aircraft for a few pilots](#reserving-one-aircraft-for-a-few-pilots) below.

The first three modes cap the **user group**. Which aircraft each pilot is then offered comes from the **Aircraft Attributions** on their profile: a pilot with this aircraft attributed — or with no aircraft attributed at all, which means every aircraft — can self-schedule it, subject to the dropdown.

**Only selected pilots** works the other way round and is the one to use when an aircraft belongs to a few people: the list lives on the aircraft, it overrides the pilots' attributions, and an empty list means **nobody**.

Below the dropdown, Flylogs shows a live counter — **"Currently X pilots will have access to self-schedule flights on this aircraft"** — recalculated for the selected access mode. For the group-cap modes it counts active pilots (`pilot = 1`, `active = 1`) that are attributed to this aircraft or have no attributions at all, within the selected group cap. When **Only instructors** is selected, Student Pilots, Pilots and Captains are excluded from the count. For **Only selected pilots** it simply counts the pilots you ticked.

{% hint style="info" %}
**Student Pilots** never see aircraft set to **Certified pilots** or **Only instructors** in their Book a Flight aircraft list. Likewise, aircraft set to **Only instructors** are hidden from Captains, Pilots and Student Pilots. Roles that do not fly — Auditors and Mechanics — never self-schedule under any access mode.

The dropdown is enforced when the booking is saved, not just when the aircraft list is drawn, so a booking that reaches the server for an aircraft the pilot is not entitled to is refused (*"You are not allowed to self schedule …"*). The same applies to an aircraft with self-scheduling switched off entirely (*"Self scheduling is not enabled on …"*).
{% endhint %}

{% hint style="warning" %}
**Self-scheduling has no company-wide off switch.** It is enabled aircraft by aircraft. In particular, turning off **All pilots see schedule** in [Company settings → Schedule](/fcom/company-management/company-settings/schedule.md) hides the master schedule but leaves self-booking working. To stop pilots booking their own flights, switch **Self-Schedule** off on every aircraft.

Switching it off on an aircraft stops new bookings; bookings pilots already hold on it stay editable by them until you move or cancel those bookings from [Schedule Review](/fcom/schedules/schedule-review-page.md).
{% endhint %}

### Reserving one aircraft for a few pilots

A common setup in clubs and small schools is a single aircraft — a co-owned one, or one reserved for renters — that **only a handful of pilots** may book, while the rest of the fleet stays open as usual.

That is what the **Only selected pilots** access mode is for.

1. On the aircraft edit page, keep **Allow pilots to self-schedule flights on this aircraft** ticked.
2. Set **Who can self-schedule** to **Only selected pilots**.
3. Tick the pilots allowed to book it. The counter below the list confirms how many are selected.
4. Save.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-d6d3a3dc4f512e6e214a613160c50d6297144b72%2FaircraftSelfSchedulePilots.png?alt=media" alt=""><figcaption><p>The <strong>Only selected pilots</strong> mode: the aircraft itself names who may book it.</p></figcaption></figure>

From then on, only those pilots see the aircraft in **Book a Flight**, and only they can book it. Everybody else stops seeing it there — whatever their own Aircraft Attributions say, and whatever their user group is.

{% hint style="warning" %}
**An empty list means nobody.** This is the opposite of the pilot-side Aircraft Attributions, where an empty list means *every* aircraft. If you select **Only selected pilots** and tick no one, the aircraft disappears from self-booking entirely — the form warns you when that is the case.
{% endhint %}

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-61d77e6c46d10a235fdd1930a19fb2be158646a1%2FaircraftSelfSchedulePilotsEmpty.png?alt=media" alt=""><figcaption><p>Nothing ticked: the aircraft is closed to self-booking, and the form says so.</p></figcaption></figure>

{% hint style="info" %}
**Do not use the Self-Schedule checkbox to restrict an aircraft.** The checkbox is all-or-nothing: unticking it stops *everybody* from self-booking the aircraft, including your Chief Pilots and instructors, because they book through the very same **Book a Flight** widget. They would get *"Self scheduling is not enabled on …"*. Use the access mode instead.
{% endhint %}

The list is stored on the aircraft and is kept when you switch to another access mode, so you can open an aircraft to the whole school for a weekend and switch back without rebuilding it. It is checked again when the booking is saved, not only when the aircraft list is drawn, so it is a real restriction and not just a filter.

The pilots you can tick are the active pilots of your company (`pilot = 1`, `active = 1`). Deactivating a pilot removes them from self-booking without you having to edit the aircraft.

### An aircraft that its pilots see on its own

The same mode covers the opposite need: an aircraft reserved for a group of pilots who should **only** see that aircraft, and not the schedule of the rest of the school.

1. In [Company settings → Schedule](/fcom/company-management/company-settings/schedule.md), switch **All pilots see schedule** off. Pilots then no longer see the master schedule of the company.
2. On the aircraft, set **Who can self-schedule** to **Only selected pilots** and tick those pilots.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-0b865deef8932bdf526482804d44cc3848030da8%2FcompanyAllPilotsSeeSchedule.png?alt=media" alt=""><figcaption><p>Company settings → Schedule → Permissions: with <strong>All Pilots See Schedule</strong> off, a pilot only sees the aircraft they are entitled to.</p></figcaption></figure>

Those pilots now see one aircraft on the Schedules page and in **Book a Flight**, with the bookings made on it, and nothing about the rest of the fleet. Managers keep the full view.

### Flight self-booking for pilots

As a pilot, on my dashboard, I can find a **Schedule a flight** box, see below:

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-7dcd9817027e2e509d1dce8be1cbfc4f63aa8d7a%2FScreenshot%202023-03-31%20at%2017.55.06.png?alt=media" alt=""><figcaption><p>Pilots automatically see the Schedule a flight option if they are entitled to do so.</p></figcaption></figure>

When accessing the scheduling tool, the pilot can see a form called "BOOK A FLIGHT." Only two fields are needed: the desired **date** and the **aircraft**. The aircraft list only shows planes the pilot is entitled to self-schedule — based on the aircraft's **Who can self-schedule** setting and the pilot's **Aircraft Attributions** (see the aircraft setup section above). The system then displays the available slots within the permitted times for that aircraft — pilot availability is no longer checked at this stage.

Slots are colour-coded: **green** slots are fully free and can be booked directly, while **yellow** slots are currently held by a **pending booking** (a student booking still waiting for a Flight Instructor). Yellow slots cannot be booked, but a pending booking may be canceled later — clicking a yellow slot lets the pilot add it to their **watchlist** with a single click, so they are notified the moment it frees up.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-d53c7b574375ac010c98fe4957fdcc9aa9fba56f%2FscheduleSelfSchedule.png?alt=media" alt=""><figcaption></figcaption></figure>

Once the pilot clicks on a time slot, the system will automatically pop up the booking confirmation window. Only flight types enabled for booking can be selected in this window.

The self-booking modal behaves differently based on the user group of the person making the appointment:

* **Captains and Pilots**: the process is unchanged — the pilot making the reservation is the PIC.
* **Flight Instructors and staff (Flight Instructor and above, with the pilot flag)**: they fly as PIC and can optionally pick a **SIC** from the list of all active pilots of the company. The booking is saved directly as **SCHEDULED**.
* **Student Pilots**: students can never be PIC, so they do not choose one. The system automatically selects an available **Flight Instructor** and assigns them as PIC (the student is stored as SIC). The chosen FI must: have published availability (AVAILABLE or ALWAYS — never MAYBE or UNAVAILABLE) covering the whole slot, have no conflicting schedule or class, be entitled to fly the selected aircraft (aircraft attributions — an empty list means all aircraft), and have the selected flight type attributed (empty list means all flight types). If the student has an **assigned instructor** (training supervisor), that instructor has priority over other available FIs.

When a **student** opens the modal, Flylogs checks for an instructor in real time. If one is available it is shown in the **Flight instructor** box; if none is available, the modal warns that the booking will be saved as **pending** and confirmed automatically as soon as an instructor becomes available — and that it will be canceled automatically if no instructor is assigned before the company's cancellation deadline (flight start time minus the "minimum cancellation time" setting).

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-e77627926bb9e827ecb32082548ac84804dd72b8%2FselfBookingPendingNoFi.png?alt=media" alt=""><figcaption><p>Student booking modal when no instructor is available — the flight will be saved as pending.</p></figcaption></figure>

#### Crew certificate check

Before a booking is saved, Flylogs validates the certificates of every crew member that will fly (the pilot booking, plus a SIC if an instructor selected one) against the **required certificates of the selected flight type**. If a required certificate is missing or expired, or **expires before the flight ends**, the modal shows a warning. The same warning appears on the flight detail card afterwards.

This check follows the same rule as the toggle above: the warning blocks the booking only when **Require pilot documents** is on and **Allow self-booking without valid documents** is off. Otherwise it is shown in amber as information and the pilot can book. A flight type with no required certificates never produces a warning.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-58acc634c4bbd023a5dbd36492a4c8d25fc8f957%2FscheduleFlightDetailModal.png?alt=media" alt=""><figcaption><p>Flight detail card showing the PIC/SIC, the Dual flight type, and a certificate-expiry warning for the SIC.</p></figcaption></figure>

### Pending bookings

If no Flight Instructor is available for the selected slot, the student's booking is stored with the new **PENDING** status: the slot is locked for the student, displayed like any scheduled flight, but it is not confirmed yet because it lacks an FI as PIC.

* Whenever an FI publishes availability (AVAILABLE or ALWAYS) that matches a pending booking — same checks as above: time frame, attributions, conflicts — the booking is automatically updated to **SCHEDULED**, the FI is assigned as PIC with a pending confirmation request, and the usual schedule notifications are sent.
* If no FI has been assigned when the confirmation deadline arrives (**flight start time minus the company "minimum cancellation time" setting, in hours**), the booking is automatically canceled by the system and the slot frees up for other users.

After the pilot clicks the "**Book this Slot**" button, the system locks the slot and sends a notification to the assigned PIC, requesting confirmation. Once the PIC confirms the flight, the SIC will no longer be able to modify the booking.

### Instructor availability calendar

When the **ALLOW FI SCHEDULE MANAGEMENT** company setting is enabled, Flight Instructors (Flight Instructor and above, with the pilot flag) get access to a weekly **Instructor availability** calendar from the Schedules page, shown in the company timezone. **Chief Pilot and above** always have access. This lets an FI plan around pending student bookings: if another instructor is available at the time of a pending slot, that instructor will likely take it.

### Slot watchlist

Pilots can watch an aircraft and time frame they would like to fly. There are two ways to add a watch:

* **From a yellow (pending) slot**: clicking a yellow slot opens a confirmation modal explaining that the slot is being held by a pending booking that may be canceled, and lets the pilot add it to their watchlist with one click.
* **Manually**: from the **Slot watchlist** widget, the pilot uses **+ Watch a slot** to enter an aircraft and a time frame directly.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-01a8e8a79b730fb1fab2b584b5884d83baa6b535%2FslotWatchlistPendingModal.png?alt=media" alt=""><figcaption><p>Watching a pending (yellow) slot from the schedule.</p></figcaption></figure>

If a booking overlapping a watched slot is **canceled or deleted**, every watcher is notified immediately (push notification and message) so they can grab the freed slot, and the watch entry turns **green** in the Slot watchlist widget with a "Slot free!" badge. If the requested time frame is already free at the moment the watch is added, the system tells the pilot right away (the slot is shown as free) instead of creating the watch. Past watchlist entries are cleaned up automatically every night.

The **Slot watchlist** widget on the dashboard lists the pilot's active watches and lets them remove any entry with the trash icon.

<figure><img src="https://3907986352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMT7uFw9SCqEw2vqrAnQg%2Fuploads%2Fgit-blob-7c7c050a8500197b10fef6033d230a6cbc60c6de%2FslotWatchlistWidget.png?alt=media" alt=""><figcaption><p>The Slot watchlist widget on the pilot dashboard.</p></figcaption></figure>

[^1]: \- Remember that to give your pilots the option to self schedule a flight, you also have to enable this on each one of your aircraft. -
