# Appointment

## **Specs**

| Label                     | Value                         |
| ------------------------- | ----------------------------- |
| **Version**               | 3.4.0 (updated on 2026-05-05) |
| **Developer**             | Labii Inc.                    |
| **Type**                  | Column                        |
| **Support Configuration** | Yes                           |
| **Support Readonly view** | Yes                           |
| **Support Edit view**     | Yes                           |
| **Support Form view**     | Yes                           |
| **Support Default value** | Yes                           |
| **Support Import**        | Yes                           |
| **Allow multiple**        | Yes                           |

## Overview

The Appointment widget enables users to efficiently schedule and manage appointments by setting both start and end date and time parameters. This widget simplifies the process of creating appointments and events that require specific time ranges, ensuring precise scheduling for applications such as booking meetings, reserving equipment time slots, or planning experiments. It provides intuitive date and time pickers, conflict detection to prevent double-booking, and flexible display options including progress bar visualization, streamlining scheduling workflows in laboratory environments.

## Use case

1. Use this widget to set the time of a task.
2. Use this widget to set the appointment time for using equipment.
3. Use this widget to schedule experiments and track their duration as a progress bar.
4. Use this widget to detect and warn about scheduling conflicts for shared resources.

## Configuration

The widget works without additional setup, but you can use the configuration to customize how appointment dates and times are displayed and to enable conflict detection.

* **Date Format** - The appointment date can be formatted in any way you like. Default to `MMM D`. [Learn more](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/)
* **Time Format** - The appointment time can be formatted in any way you like. Default to `HH:mm`. [Learn more](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/)
* **Separator** - Separator between start and end dates.
* **Should hide time** - If true, the time will be hidden.
* **Should display as progress bar** - If true, the appointment date range will be displayed as a progress bar.
* **Conflict warning message** - If provided, the warning message will appear when multiple records occupy the appointment time slot.
* **Conflict check column SID** - Use the ForeignKey's SID column to enforce conflict checks. For instance, if you aim to ensure that a particular piece of equipment is scheduled only once, utilize the equipment's SID column.

### Examples

Use `-` as the separator between start and end dates.

```json
{
    "separator": "-"
}
```

Display a conflict warning message when the time slot is already occupied.

```json
{
    "conflict_warning_message": "Time conflicted"
}
```

Display the appointment as a progress bar.

```json
{
    "should_display_as_progress_bar": true
}
```

## Views

See the interface of the widget in the following views.

### **Readonly view**

Readonly view display the values of the column.

<figure><img src="/files/EsdlmSUKaGYPXt5wdMuJ" alt=""><figcaption></figcaption></figure>

**Text color**

* Black — future date
* Orange — current date time
* Red — past date time

**Add appointment to calendar**

To incorporate the event into your Google Calendar, simply click the button.

**Display conflict message**

You can configure the `conflict_warning_message` in the configuration settings to display a warning when an appointment overlaps with another record's time slot.

### **Edit view**

The Edit view is the interface that allows you to modify the value.

<figure><img src="/files/C0ZUwB6uEWFQ2ajQ9vSN" alt=""><figcaption></figcaption></figure>

### **Form view**

The Form view is the field integrated into the add form for collecting values when creating a new record.

The Form view is same as the Edit view.

## Data

Each widget in Labii stores data in a unique manner; refer below to understand how data from this widget is stored.

### Data format

JSON

```json
{
    "date_start": "",
    "time_start": "",
    "date_end": "",
    "time_end": ""
}
```

### **Default value**

The Default Value field within the column allows you to specify the default value when a record is created.

Default value shall be the JSON described above.

### **Import value**

The Import Value is the value you need to include in your Excel table for it to be imported into Labii.

Import value shall be the JSON described above.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.labii.com/widgets/column-widgets/form/datetime/appointment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
