<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Concepts%2FSchedule_%26_Availability</id>
	<title>Concepts/Schedule &amp; Availability - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Concepts%2FSchedule_%26_Availability"/>
	<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Concepts/Schedule_%26_Availability&amp;action=history"/>
	<updated>2026-07-06T05:40:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.4</generator>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Concepts/Schedule_%26_Availability&amp;diff=456&amp;oldid=prev</id>
		<title>Admin: Automated edit (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Concepts/Schedule_%26_Availability&amp;diff=456&amp;oldid=prev"/>
		<updated>2026-07-06T04:18:43Z</updated>

		<summary type="html">&lt;p&gt;Automated edit (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:48, 6 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Roles are granted through a user&#039;s facility and organization memberships, and permissions cascade down the organization tree — a role held on a parent organization applies to the facilities and resources beneath it.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Roles are granted through a user&#039;s facility and organization memberships, and permissions cascade down the organization tree — a role held on a parent organization applies to the facilities and resources beneath it.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Navbox scheduling}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Concepts/Schedule_%26_Availability&amp;diff=120&amp;oldid=prev</id>
		<title>Admin: OHC identity seed</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Concepts/Schedule_%26_Availability&amp;diff=120&amp;oldid=prev"/>
		<updated>2026-07-04T22:43:39Z</updated>

		<summary type="html">&lt;p&gt;OHC identity seed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Doc header&lt;br /&gt;
|type=concept&lt;br /&gt;
|domain=scheduling&lt;br /&gt;
|title=Schedule &amp;amp; Availability&lt;br /&gt;
|order=1&lt;br /&gt;
|introduced=3.0&lt;br /&gt;
|concept=Concepts/Healthcare Service&lt;br /&gt;
|reference=References/Schedule &amp;amp;amp; Availability&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;schedule&amp;#039;&amp;#039;&amp;#039; is a named, date-bounded block of time during which a bookable resource — a practitioner, a location, or a healthcare service — accepts appointments. It is the supply side of scheduling: a schedule declares when care can be booked, so the rest of the platform knows which slots to offer patients.&lt;br /&gt;
&lt;br /&gt;
== What it represents ==&lt;br /&gt;
&lt;br /&gt;
In Care&amp;#039;s FHIR-aligned model, a schedule maps to the &amp;#039;&amp;#039;&amp;#039;Schedule&amp;#039;&amp;#039;&amp;#039; resource, and the way it produces bookable times mirrors how FHIR derives &amp;#039;&amp;#039;&amp;#039;Slot&amp;#039;&amp;#039;&amp;#039;s from a schedule&amp;#039;s planning horizon. A schedule captures:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;The resource&amp;#039;&amp;#039;&amp;#039; — who or what is being booked: a practitioner, a physical location, or a named healthcare service&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;The effective window&amp;#039;&amp;#039;&amp;#039; — the dates between which this schedule applies, for example a doctor&amp;#039;s roster for one quarter&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Availabilities&amp;#039;&amp;#039;&amp;#039; — one or more recurring time blocks (a morning OPD, an afternoon clinic) that say which days and hours are open and how that time divides into slots&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Exceptions&amp;#039;&amp;#039;&amp;#039; — specific dates and times when the resource is unavailable, such as leave or a public holiday&lt;br /&gt;
&lt;br /&gt;
A schedule is not a list of appointments. It is the rule that &amp;#039;&amp;#039;generates&amp;#039;&amp;#039; bookable slots; the actual reservations live in [[Concepts/Appointment Booking|bookings]] and, where queues are used, in [[Concepts/Token|tokens]]. Slots are never stored as rows — they are computed on demand from a schedule&amp;#039;s availabilities with exceptions subtracted, so the schedule is always the single source of truth for what is bookable. Editing a schedule changes what &amp;#039;&amp;#039;can&amp;#039;&amp;#039; be booked going forward; it does not touch appointments that already exist.&lt;br /&gt;
&lt;br /&gt;
== How a schedule is built up ==&lt;br /&gt;
&lt;br /&gt;
Three pieces work together. The schedule is the container; availabilities and exceptions shape the slots it offers.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Schedule&amp;#039;&amp;#039;&amp;#039; — the named, dated block attached to one resource. Holds the effective window and any billing charge that applies to bookings made against it.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Availability&amp;#039;&amp;#039;&amp;#039; — a recurring time block inside a schedule. It sets the slot type, how long each slot is, how many people each slot can hold, and which weekdays and hours it repeats on. A schedule can carry several, for example a morning and an afternoon block.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Availability exception&amp;#039;&amp;#039;&amp;#039; — a one-off date range that blocks the resource regardless of its schedules. Used for leave, holidays, and unplanned closures.&lt;br /&gt;
&lt;br /&gt;
== Availability types ==&lt;br /&gt;
&lt;br /&gt;
Each availability block has a &amp;#039;&amp;#039;&amp;#039;slot type&amp;#039;&amp;#039;&amp;#039; that decides how its time behaves:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;appointment → open → closed&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;appointment&amp;#039;&amp;#039;&amp;#039; — time-precise booking. The block is divided into fixed-length slots (for example, 15-minute slots), each holding a set number of people. Use this when patients book a specific time.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;open&amp;#039;&amp;#039;&amp;#039; — a block with no fixed slot size, suited to walk-in or queue-style flows where order matters more than an exact minute. Often paired with token generation.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;closed&amp;#039;&amp;#039;&amp;#039; — a block that is explicitly not bookable, used to carve a gap out of an otherwise open period.&lt;br /&gt;
&lt;br /&gt;
An appointment or open block can also issue a &amp;#039;&amp;#039;&amp;#039;token&amp;#039;&amp;#039;&amp;#039; for each booking, feeding the queue and token-display workflows that high-volume, walk-in clinics depend on.&lt;br /&gt;
&lt;br /&gt;
== How it connects ==&lt;br /&gt;
&lt;br /&gt;
A schedule sits at the center of the booking flow and links outward to several other primitives:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; — every schedule attaches to exactly one practitioner ([[Concepts/User|user]]), [[Concepts/Location|location]], or [[Concepts/Healthcare Service|healthcare service]] within a [[Concepts/Facility|facility]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bookings&amp;#039;&amp;#039;&amp;#039; — patients reserve generated slots, creating [[Concepts/Appointment Booking|bookings]] against the schedule.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tokens&amp;#039;&amp;#039;&amp;#039; — in queue-based clinics, a booking can also issue a [[Concepts/Token|token]] for the waiting line.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Billing&amp;#039;&amp;#039;&amp;#039; — a schedule can carry a charge that applies to its bookings, with an optional reduced charge for follow-up visits within a configured window, drawn from a [[Concepts/Charge Item Definition|charge item definition]].&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
Access to schedules and the bookings made against them is governed by the facility-level permissions below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Permission&lt;br /&gt;
! Description&lt;br /&gt;
! System Roles&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;can_write_schedule&amp;lt;/code&amp;gt;&lt;br /&gt;
| Create, update, and delete schedules and their availabilities for a resource&lt;br /&gt;
| Admin, Staff, Facility Admin, Doctor, Nurse&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;can_list_schedule&amp;lt;/code&amp;gt;&lt;br /&gt;
| View the schedules and availabilities defined for a resource&lt;br /&gt;
| Admin, Staff, Facility Admin, Doctor, Nurse, Administrator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;can_set_charge_item_definition&amp;lt;/code&amp;gt;&lt;br /&gt;
| Attach a billing charge item definition (and revisit settings) to a schedule&lt;br /&gt;
| Facility Admin, Admin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Roles are granted through a user&amp;#039;s facility and organization memberships, and permissions cascade down the organization tree — a role held on a parent organization applies to the facilities and resources beneath it.&lt;br /&gt;
&lt;br /&gt;
{{Related}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>