# Plan and log sessions

> Plan a session, log one after the fact, mark it held, cancelled or no-show, and get sessions into a calendar with the feed or add-to-calendar links.

## Goal

Keep a client's sessions in Coaching Toolkit: plan the next one, log one that already happened, close each planned session as Held, Cancelled or NoShow, and see sessions in your own calendar app.

## Prerequisites

- A client profile (see [Create a client](https://coaching-toolkit.com/docs/clients/create-and-portal)). You must be the client's assigned Coach or an Admin.
- Optional: your default meeting link on your Account page in Settings. A planned session with no place of its own uses it. Without one, the session gets a call link from the app itself.

## How a session moves

A session is `Planned`, `Held`, `Cancelled` or `NoShow`. Only a Planned session moves, and the other three are final:

| From | To | Allowed |
| --- | --- | --- |
| Planned | Held | from one hour before the start |
| Planned | Cancelled | at any time |
| Planned | NoShow | once the start time has passed |

A session logged after the fact starts as Held. A booking on a page where you approve each booking starts as `Requested` and becomes `Planned` when you approve it or `Declined` (final) when you decline it or it expires; see [Publish booking pages and embed them](https://coaching-toolkit.com/docs/booking/page-and-embeds).

A session that counts toward one of the client's purchases is **used** once Held and **planned** while Planned or Requested; a cancelled, missed or declined one gives its place back (see [Sessions a client has left](https://coaching-toolkit.com/docs/clients/create-and-portal#sessions-a-client-has-left)).

### Which purchase a session counts toward

When you plan or log a session, it counts toward the client's first purchase with a session left of the same kind and length (the oldest purchase first; sessions of any length fit every length). The plan and log dialogs name that purchase, and you can pick another of the client's purchases or **None**. With nothing left the session counts toward none; you can still plan or log it. Every session row says which purchase it counts toward. While a session is Planned or Requested you can move it to another purchase or to none; after that it stays. A purchase you pick must be for the session's kind and length. If you change the kind or length and the purchase no longer fits, the session moves to the first purchase that does, or to none. A session that came from a booking keeps what the client booked: while it waits for your approval, or when it counts toward a purchase the client bought, you cannot move it to another purchase or change it to a kind or length that purchase is not for. A group meeting counts toward the sessions you gave the group (see **Charge a group**), else toward none.

## Plan a session

Open the client, then **Plan session**. Fill in:

| Field | Meaning |
| --- | --- |
| Start | date and time; must be in the future |
| Duration | 1 to 1440 minutes |
| Location | optional, up to 200 characters; under **More options** |
| Meeting link | optional http(s) link, up to 500 characters; replaces the call link the app provides by itself. Under **More options** |
| Billing | **Paid** or **Pro bono**; starts as the client's **Default billing** |

The session is saved as Planned and shows its add-to-calendar links.

### Warnings, not refusals

A planned time that clashes is saved anyway and the app shows a warning:

- **Overlap**: another planned session of yours overlaps; the warning names that session's start and length.
- **Busy**: a connected calendar shows you as busy; the warning gives when and which calendar, never what the time is busy with.

Move one of the sessions if the warning matters; nothing is blocked.

## Log a session that already happened

Open the client and log a session as **Held**. Give the date and time it was held (not more than five minutes in the future). The duration is optional, and the billing starts as the client's default. You can fill in the session note right away (topics, insights, action items, next session, reflection; see [Goals and notes](https://coaching-toolkit.com/docs/goals-and-notes)) or leave it and write the note later.

## Reschedule or edit

Open the planned session and change its start, duration, location or meeting link; clear the location or link to remove it. Fields you leave alone keep their value. Only a Planned session can be edited. A new time sends the client's reminder again.

A Held session takes two edits: its duration and its billing. Open it on the client's **Sessions and notes** and set **Duration (minutes)** or **Billing**. This is how you correct the minutes a video call recorded (see below); a duration you set by hand is never overwritten by a later call.

## Paid or pro bono

Every session is **Paid** or **Pro bono**, as ICF counts coaching hours: paid when the client or a sponsor paid for it, in money or in kind, whatever the price. A new session takes the client's **Default billing** (set on the client's profile, **Paid** unless you change it); change it on the session when planning, logging, rescheduling or, for a held session, on its line under **Sessions and notes**. A pro bono session carries a **Pro bono** tag in the lists. All sessions of one group meeting share one billing: **Paid** unless you choose otherwise, and changing it on one member's session changes it for the whole meeting. The client never sees the billing.

## Sessions held over video

When the session's Offer needs payment to join, the client can join the call only once the session is paid, unless you allow joining unpaid for that session: see [Payment needed to join](https://coaching-toolkit.com/docs/payments/stripe-connect).

When a video call ends and the client joined it, the session is marked Held by itself: held at the moment the call's clock started, with the call's minutes (rounded up; a call restarted on the same session adds its minutes). The session shows **Held by call**. A client who never joined leaves the session Planned for you to close as Held, Cancelled or NoShow. A call that hits the four-hour limit, or that ended because everyone dropped out, can be started again on the same session while its join window is open.

## Group sessions

A group session is one meeting of a group: every Active member of the group gets their own session at the same time, with the same length, place and link, and their own email. Open the group, **Sessions**, then **Plan session** or **Log session** (the group's creator or an Admin). A group with no Active member, or with more members than your package allows, cannot meet.

- Marking the meeting Held, cancelling it or moving it applies to every member's session, and each member is told.
- **NoShow** is per member: mark it on the member's line under the meeting.
- A member may cancel their own place from the portal; they cannot move the meeting.
- A member added to the group joins its future meetings; a member taken out of the group, or every member when the group is deleted, leaves them. Past meetings stay as they are.
- The video call of a group session is in the group's room, and the call link in each member's mails and portal goes there.
- The agenda, Today and the calendar feed show a meeting once, with the group's name and its members; the group page lists who came and whether you wrote a note for each member.

### Charge a group

Open the group, **Sessions and payment**, and give it sessions in one of two ways:

- **Each member pays**: every Active member gets their own seat, a purchase of their own in this group. A meeting counts toward each member's seat, and payment and the join rule are per member. A member who joins later has no seat until you choose **Give a seat** for them.
- **One payer for the group**: the group holds one purchase, paid by a member or by a billing contact (a name and an email, for a company paying for its team). A meeting uses one session however many members attend, it counts once when any member's session is Held, and a cancelled meeting gives the session back. Payment needed to join then holds for every member from that one payment.

The group's card shows how it is charged, what each purchase has left, and each member's seat and payment. When you plan a meeting, the dialog says what it counts toward.

Request a payment for a purchase of a priced Offer, or record one, from the group's payments: **Request payment**, **Mark as paid** and **Record a payment** work as on a client's card (see Connect Stripe and request payments). An online request goes to the payer's email. A payment from a billing contact has no client; it is listed on the group. A member sees their own seat in the portal; under one payer the portal says the group covers their sessions and shows no amount.

A group that holds purchases cannot be deleted.

## Mark held, cancelled or no-show

On a Planned session choose its new status:

- **Held**, optionally with when it was held (otherwise the earlier of the start and now).
- **Cancelled**, with an optional reason of up to 200 characters. The client is not notified.
- **NoShow**.

## Reminders

Every hour, each client with an email address gets one reminder mail for each Planned session starting within the next 24 hours: when, how long, where and the join link. The Coach gets no reminder. Rescheduling sends a fresh one.

## See sessions in your calendar

Two ways that need no calendar password:

1. **Calendar feed**: **Settings**, **Calendar**, **Calendar feed**, **Create feed link**. Subscribe to the link in Apple Calendar, Google Calendar or Outlook. It lists your Planned and Held sessions from 90 days back onwards, titled "Session with" and the client's name, and refreshes about every hour. The link is shown once; creating another makes a new one and retires the old. Turn the feed off in the same place.
2. **Add to calendar** for one session: a Planned session offers links for Google, Outlook, Office 365, Yahoo and an `.ics` file. The `.ics` link is signed, valid for 30 days, and stops working once the session is no longer Planned.

To have sessions written into a calendar automatically, and busy time checked when planning, connect a calendar: [Connect a calendar](https://coaching-toolkit.com/docs/calendars/connect).

## Read sessions

- Your agenda under **Sessions** in the sidebar. By default it covers seven days back to 90 days ahead; a chosen range may span at most 366 days. A Member sees their own sessions; an Admin sees everyone's or filters by one Coach. **Unpaid** keeps the sessions whose payment is owed, processing or failed.
- Each session carries a payment tag (Not required, Owed, Processing, Paid, Failed, Refunded), from its own payment or the payment for the purchase it counts toward: [What each status means](https://coaching-toolkit.com/docs/payments/stripe-connect).
- One client's sessions: open the client, **Sessions and notes**, Planned first.

## Verify it worked

Open the client, **Sessions and notes**. The new session is listed with the status you expect: Planned for a session you planned, Held for one you logged. A planned session also shows under **Sessions** in the sidebar, and on **Today** when it starts today or tomorrow.

## Failure cases

| What you see | Why |
| --- | --- |
| Not allowed | you are neither the client's Coach nor an Admin (or, for the agenda, a Member asked for another Coach) |
| Not found | the client or session is not in your practice |
| Start must be in the future | a planned or rescheduled start is not in the future |
| Held time too far ahead | the held time is more than five minutes ahead |
| Client has ended | the client is Ended; you can still log a Held session |
| Session is no longer Planned | editing anything but the duration or billing of a Held session, or changing the status of a session that is already Held, Cancelled or NoShow |
| Group has no active member | the group has no Active member to meet |
| Group holds purchases | deleting a group that holds sessions you gave it |
| Group is read-only | the group has more members than your package allows |
| Too early or too soon | Held more than an hour before the start, or NoShow before the start |
