[Free] TimeSelectView - A custom time selection view.

🧩 TimeSelectView

An extension for MIT App Inventor 2.
A custom time selection view developed by TechHamara using Fast. This component allows users to visually select time ranges within a 24-hour period. It features a circular interface with anchors for start and end times, degree markers, and number markers for each hour. The component is highly customizable, offering properties to change the appearance and behavior of the time selection view.
Telegram | GitHub
Blogger | YouTube
Find More Extension
Terms & Conditions

:memo: Specifications


:package: Package: io.th.timeselectview
:floppy_disk: Size: 27.64 KB
:gear: Version: 1.1
:iphone: Minimum API Level: 7
:date: Updated On: 2025-06-05T18:30:00Z
:computer: Built & documented using: FAST v2.8.4
Library zjun615 thank you for your awesome library.
:arrow_down: Download aix
io.th.timeselectview.aix (27.6 KB)

:arrow_down: Get aia here
time_select_view.aia (28.8 KB)
:placard: Get apk on GitHub here

Demo

Screenshot_2025-08-28-06-57-45-630_appinventor.ai_Techhamara91.time_select_view.jpg

Screenshot_2025-08-28-07-18-51-267_appinventor.ai_Techhamara91.time_select_view.jpg

Screenshot_2025-08-28-06-58-11-348_appinventor.ai_Techhamara91.time_select_view.jpg

55e7c248-3a0e-478e-ba9a-30d5e94435e7.gif

8682af1b-9738-4a70-b201-e6fed98b6307.gif

Blocks


TimeInserted_Event
TimeChanged_Event
SelectionStarted_Event
SelectionFinished_Event
SelectionChanged_Event


Initialize_Method
FormatTime_Method
GetHour_Method
GetMinute_Method
HoursToMinutes_Method


AnchorStartStrokeColor_Set_Property
AnchorStartColor_Set_Property
AnchorNeedMerge_Set_Property
AnchorEndTextColor_Set_Property
AnchorEndText_Set_Property
AnchorEndStrokeColor_Set_Property
AnchorEndColor_Set_Property
AnchorDiameter_Set_Property
SectionSum_Set_Property
SectionColor3_Set_Property
SectionColor2_Set_Property
SectionColor_Set_Property
RingWidth_Set_Property
RingBackgroundColor_Set_Property
QuickCutEnable_Set_Property
NumberSize_Set_Property
NumberColor_Set_Property
InitialMinutes_Set_Property
DegreeColor_Set_Property
AnchorTextSize_Set_Property
AnchorStrokeWidth_Set_Property
AnchorStartTextColor_Set_Property
AnchorStartText_Set_Property

Documentation

Events:

TimeSelectView has total 5 events.

TimeChanged

Event raised when time sections are changed. Returns a list of sections, where each section is a list of [startMinute, endMinute].

Parameter Type
sections list

TimeInserted

Event raised when a new time section is inserted. Returns the start and end minutes.

Parameter Type
startMinute number
endMinute number

SelectionStarted

Event raised when time selection starts. Minutes are from midnight (0-1440 in 24h mode, 0-60 in 1h mode).

Parameter Type
minute number

SelectionChanged

Event raised when time selection changes. Minutes are from midnight.

Parameter Type
minute number

SelectionFinished

Event raised when time selection finishes

Methods:

TimeSelectView has total 6 methods.

Initialize

Initialize inside an arrangement.

Parameter Type
arrangement component

TimeChangeListener

Registers a listener to be notified when the selected time changes.

HoursToMinutes

Convert hours and minutes to total minutes from midnight. Example: HoursToMinutes(9, 30) returns 570 for 09:30.

  • Return type: number
Parameter Type
hours number
minutes number

GetHour

Get hour component from minutes from midnight. Example: GetHour(570) returns 9.

  • Return type: number
Parameter Type
minutesFromMidnight number

GetMinute

Get minute component from minutes from midnight. Example: GetMinute(570) returns 30.

  • Return type: number
Parameter Type
minutesFromMidnight number

FormatTime

Format minutes from midnight as HH:mm string. Example: FormatTime(570) returns '09:30'.

  • Return type: text
Parameter Type
minutesFromMidnight number

Setters:

TimeSelectView has total 24 setter properties.

RingWidth

Width of the ring in dp

  • Input type: number

RingBackgroundColor

Background color of the ring

  • Input type: number

SectionColor

Color of the time sections

  • Input type: number

SectionColor2

Second color for gradient (optional, use -1 to disable)

  • Input type: number

SectionColor3

Third color for gradient (optional, use -1 to disable)

  • Input type: number

AnchorDiameter

Diameter of the anchor points in dp

  • Input type: number

AnchorStrokeWidth

Stroke width of anchor points in dp

  • Input type: number

AnchorTextSize

Text size of anchor points in sp

  • Input type: number

AnchorNeedMerge

Whether to merge overlapping anchors when start=0 and end=1440 (full day)

  • Input type: boolean

AnchorStartColor

Color of the start anchor

  • Input type: number

AnchorStartStrokeColor

Stroke color of the start anchor

  • Input type: number

AnchorStartText

Text for the start anchor

  • Input type: text

AnchorStartTextColor

Text color of the start anchor

  • Input type: number

AnchorEndColor

Color of the end anchor

  • Input type: number

AnchorEndStrokeColor

Stroke color of the end anchor

  • Input type: number

AnchorEndText

Text for the end anchor

  • Input type: text

AnchorEndTextColor

Text color of the end anchor

  • Input type: number

DegreeColor

Color of the degree markers

  • Input type: number

NumberSize

Size of the hour number markers in sp

  • Input type: number

NumberColor

Color of the hour number markers

  • Input type: number

QuickCutEnable

Enable quick cut functionality (tap within a section to set end time to that point)

  • Input type: boolean

SectionSum

Maximum number of time sections allowed (1-24)

  • Input type: number

InitialMinutes

Initial duration in minutes when creating new time sections by tapping on the ring (1-1440)

  • Input type: number

Is24HourMode

When true, displays 24-hour mode (0-23 hours, 0-1440 minutes). When false, displays 1-hour mode (0-60 minutes). Changing this clears existing time sections.

  • Input type: boolean

Getters:

TimeSelectView has total 24 getter properties.

RingWidth

Width of the ring in dp

  • Return type: number

RingBackgroundColor

Background color of the ring

  • Return type: number

SectionColor

Color of the time sections

  • Return type: number

SectionColor2

Second color for gradient (optional, use -1 to disable)

  • Return type: number

SectionColor3

Third color for gradient (optional, use -1 to disable)

  • Return type: number

AnchorDiameter

Diameter of the anchor points in dp

  • Return type: number

AnchorStrokeWidth

Stroke width of anchor points in dp

  • Return type: number

AnchorTextSize

Text size of anchor points in sp

  • Return type: number

AnchorNeedMerge

Whether to merge overlapping anchors when start=0 and end=1440 (full day)

  • Return type: boolean

AnchorStartColor

Color of the start anchor

  • Return type: number

AnchorStartStrokeColor

Stroke color of the start anchor

  • Return type: number

AnchorStartText

Text for the start anchor

  • Return type: text

AnchorStartTextColor

Text color of the start anchor

  • Return type: number

AnchorEndColor

Color of the end anchor

  • Return type: number

AnchorEndStrokeColor

Stroke color of the end anchor

  • Return type: number

AnchorEndText

Text for the end anchor

  • Return type: text

AnchorEndTextColor

Text color of the end anchor

  • Return type: number

DegreeColor

Color of the degree markers

  • Return type: number

NumberSize

Size of the hour number markers in sp

  • Return type: number

NumberColor

Color of the hour number markers

  • Return type: number

QuickCutEnable

Enable quick cut functionality (tap within a section to set end time to that point)

  • Return type: boolean

SectionSum

Maximum number of time sections allowed (1-24)

  • Return type: number

InitialMinutes

Initial duration in minutes when creating new time sections by tapping on the ring (1-1440)

  • Return type: number

Is24HourMode

When true, displays 24-hour mode (0-23 hours, 0-1440 minutes). When false, displays 1-hour mode (0-60 minutes). Changing this clears existing time sections.

  • Return type: boolean
Update

Update

  • Remove time sections function to simplify this function.
  • new function Is24HourMode
    When true, displays 24-hour mode (0-23 hours, 0-1440 minutes). When false, displays 1-hour mode (0-60 minutes). Changing this clears existing time sections.

Thanks

  TechHamara 

Feel free to contact us any quarry or suggestions.

3 Likes

you say that I can select from 24 hours, but the extension only allows the time to be selected in one hour, and there seems to be no way to change it.

Check out this..

I tried to do this, but it seems there is no timepart block, and I have tried putting lists, and nested lists and it still doesn't work.

hi @aimbot_user

check new version of fist post.
i am add new functions and remove unused functions.
also you can use this to view 12h and 24h on ring.

Update

Update

  • Remove time sections function to simplify this function.
  • new function Is24HourMode
    When true, displays 24-hour mode (0-23 hours, 0-1440 minutes). When false, displays 1-hour mode (0-60 minutes). Changing this clears existing time sections.