B4A Library [B4X] [XUI] AS Scheduler 📅 - MonthView, DayView (Week), AgendaView and CalendarView [Payware]

The AS Scheduler is a B4X library for displaying and interacting with appointments.

This library is not free, because, it cost a lot of time and gray hair to create such views.
Minimum Donation Value: 25
Please write Scheduler in the order description, thanks.

Thanks for your understanding. :)
  1. Donate
  2. I will send you an e-mail or a direct message with the code to decrypt the .zip file
  3. Done
DayView.png

MonthView.png

AgendaView.png

CalendarView.png

The project was divided into modules.
  • Views
    • ASScheduler_DayView
    • ASScheduler_MonthView
    • ASScheduler_AgendaView
    • ASScheduler_CalendarViewMonth
    • ASScheduler_CalendarViewWeek
  • Classes
    • ASSchedulerAPI
    • ASSchedulerInternShared
  • Modules
    • ASSchedulerUtils
Features.png

B4j: jXUI,jDateUtils,xCustomListView,ASViewPager,jSQL
B4a: XUi,DateUtils,Reflection,xCustomListView,ASViewPager,SQL
B4i: iXUI,iDateUtils,xCustomListView,ASViewPager,iSQL
Make sure you are using ASViewPager V1.31+
On B4I you need GestureRecognizer Download the .bas file in the attachment No longer needed since 1.16+

ASScheduler
Author: Alexander Stolte
Version: 2.02

  • ASSchedulerAPI
    • Functions:
      • Class_Globals As String
      • ClearAppointments As String
        Deletes all Appointments
      • ClearBlackouts As String
        Deletes all Blackouts
      • CreateAppointment (Appointment As ASScheduler_Appointment) As ASScheduler_Appointment
        Creates a new Appointment
        <code>ASScheduler_DayView1.API.CreateAppointment(ASSchedulerUtils.CreateASScheduler_Appointment(0,"Test Item 1",xui.Color_ARGB(255,45, 136, 121),False,DateTime.now,DateTime.now+DateTime.TicksPerHour))</code>
        <code>ASScheduler_DayView1.API.CreateAppointment(ASSchedulerUtils.CreateASScheduler_AppointmentRecurring(0,"Test Item 1",xui.Color_ARGB(255,45, 136, 121),False,DateTime.now,DateTime.now+DateTime.TicksPerHour,True,"week",1))</code>
      • CreateBlackout (Blackout As ASScheduler_Blackout) As String
        Create a new Blackout
        <code>ASScheduler_DayView1.API.CreateBlackout(ASSchedulerUtils.CreateASScheduler_Blackout(0,DateTime.Now+(DateTime.TicksPerDay*2),DateTime.Now+(DateTime.TicksPerDay*2)))'2 days </code>
      • DeleteAppointment (Id As Int) As String
        Removes an Appointment
      • DeleteBlackout (Id As Int) As String
        Removes an Appointment
      • GetAppointment (Id As Int) As ASScheduler_Appointment
        Get a Appointment
      • GetAppointmentCount As Int
        Gets the count of all Appointments
      • GetAppointmentCountInRange (StartDate As Long, EndDate As Long, DurationLongerThanOneDay As Boolean) As Int
        Gets the Appointments count from StartDate to EndDate
        The time value is set to 0 o'clock on StartDate and at the EndDate to 23:59
        If DurationLongerThanOneDay = True then it counts only the appointments that go longer than 1 day
      • GetAppointmentCountOnOneDay (Date As Long) As Int
      • GetAppointments (Date As Long) As List
        Gets all appointments on that Date
        Returns a List of ASScheduler_Appointment objects
      • GetCustomQuery (Columns As String, Table As String, Where As String, Args As String()) As ResultSet
        The table structure you find here
        <code>https://www.b4x.com/android/forum/threads/b4x-xui-as-scheduler-📅-monthview-and-dayview-week-payware.138410/post-876274</code>
        If you dont need a where, just put a "" to the string
      • GetIsDayBlackout (Date As Long) As Boolean
        Checks if there is a blackout on that day
      • Initialize (sql As SQL) As String
        Initializes the object. You can add parameters to this method if needed.
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
  • ASSchedulerInternShared
    • Fields:
      • SQL As SQL
    • Functions:
      • CreateHeaderItem (Text As String, HeaderTextProperties As ASScheduler_MonthView_HeaderTextProperties) As B4XView
      • GetARGB (Color As Int) As Int()
      • GetDisplayDuration (StartTime As Long, EndTime As Long) As String
      • GetMonthNameByIndex (Index As Int, MonthNameShort As ASScheduler_MonthNameShort) As String
        1 = January
      • GetWeekNameByIndex (Index As Int, WeekNameShort As ASScheduler_WeekNameShort) As String
        1 = Sunday
      • Initialize As String
      • Process_Globals As String
  • ASSchedulerUtils
    • Functions:
      • API As ASSchedulerAPI
        Global Scheduler API Access
        First call InitializeAPI
      • ConvertSameDateTimeTicks2SameDateTicks (ticks As Long) As Long
      • CreateASScheduler_Appointment (Id As Int, Name As String, Description As String, Color As Int, isFullDay As Boolean, StartDate As Long, EndDate As Long) As ASScheduler_Appointment
        Id -The appointment ID, set this to 0 if you want to create an appointment
      • CreateASScheduler_AppointmentRecurring (Id As Int, Name As String, Description As String, Color As Int, isFullDay As Boolean, StartDate As Long, EndDate As Long, isRecurring As Boolean, RecurringUnit As String, RecurringInterval As Int) As ASScheduler_Appointment
        Id -The appointment ID, set this to 0 if you want to create an appointment
        isRecurring - If True then the appointment will be recurring
        RecurringUnit - day - week - month - year are valid
        Use ASSchedulerUtils.Recurring_Day for the RecurringUnits
      • CreateASScheduler_Blackout (Id As Int, StartDate As Long, EndDate As Long) As ASScheduler_Blackout
      • CreateASScheduler_HeatMapColor (Color As Int, Count As Int, TextColor As Int) As ASScheduler_HeatMapColor
      • CreateASScheduler_MonthNameShort (January As String, February As String, March As String, April As String, May As String, June As String, July As String, August As String, September As String, October As String, November As String, December As String) As ASScheduler_MonthNameShort
      • CreateASScheduler_WeekNameShort (Monday As String, Tuesday As String, Wednesday As String, Thursday As String, Friday As String, Saturday As String, Sunday As String) As ASScheduler_WeekNameShort
      • FillWithDiagonallyDrawnLines (Target As B4XView, Thickness As Float, Color As Int) As String
      • FillWithDiagonallyDrawnLines2 (Target As B4XView, Thickness As Float, GapBetween As Float, Color As Int) As String
      • GetARGB (Color As Int) As Int()
      • GetFirstDayOfWeek2 (Ticks As Long, FirstDayOfWeek As Int) As Long
        FirstDayOfWeek:
        Friday = 1
        Thursday = 2
        Wednesday = 3
        Tuesday = 4
        Monday = 5
        Sunday = 6
        Saturday = 7
      • GetWeekNumberStartingFromMonday (ticks As Long) As Int
      • InitializeAPI As String
      • NumberOfWeeksBetween (StartDate As Long, EndDate As Long) As Int
      • Process_Globals As String
      • Recurring_Day As String
      • Recurring_Month As String
      • Recurring_Week As String
      • Recurring_Year As String
      • TimeSystem_12h As String
      • TimeSystem_24h As String
      • WeekDay_Friday As Int
      • WeekDay_Monday As Int
      • WeekDay_Saturday As Int
      • WeekDay_Sunday As Int
      • WeekDay_Thursday As Int
      • WeekDay_Tuesday As Int
      • WeekDay_Wednesday As Int
  • ASScheduler_AgendaView
    • Events:
      • AppointmentClick (Appointment As ASScheduler_Appointment)
      • CustomDrawEmptyState (StartDate As Long, BackgroundPanel As B4XView)
      • CustomDrawMonth (StartDate As Long, BackgroundPanel As B4XView)
      • CustomDrawWeek (StartDate As Long, BackgroundPanel As B4XView)
      • MonthClick (StartDate As Long)
      • WeekClick (StartDate As Long)
    • Fields:
      • mBase As B4XView
      • Tag As Object
    • Functions:
      • Class_Globals As String
      • CreateASScheduler_AgendaView_AppointmentDayOfMonthProperties (xFont As B4XFont, TextColor As Int) As ASScheduler_AgendaView_AppointmentDayOfMonthProperties
      • CreateASScheduler_AgendaView_AppointmentProperties (Height As Float, Gap As Float, CornerRadius As Float, xFont As B4XFont, TextColor As Int, ShowStartEndTime As Boolean, ShowDuration As Boolean) As ASScheduler_AgendaView_AppointmentProperties
      • CreateASScheduler_AgendaView_AppointmentWeekDayProperties (xFont As B4XFont, TextColor As Int) As ASScheduler_AgendaView_AppointmentWeekDayProperties
      • CreateASScheduler_AgendaView_EmptyStateProperties (xFont As B4XFont, TextColor As Int, Height As Float, BackgroundColor As Int, EmptyText As String) As ASScheduler_AgendaView_EmptyStateProperties
      • CreateASScheduler_AgendaView_MonthProperties (xFont As B4XFont, TextColor As Int, Height As Float, BackgroundColor As Int) As ASScheduler_AgendaView_MonthProperties
      • CreateASScheduler_AgendaView_TimelineProperties (Width As Float) As ASScheduler_AgendaView_TimelineProperties
      • CreateASScheduler_AgendaView_WeekProperties (xFont As B4XFont, TextColor As Int, Height As Float, BackgroundColor As Int) As ASScheduler_AgendaView_WeekProperties
      • CreateScheduler
      • DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
        Base type must be Object
      • getAEmptyStateProperties As ASScheduler_AgendaView_EmptyStateProperties
      • getAPI As ASSchedulerAPI
        Gets the API
      • getAppointmentDayOfMonthProperties As ASScheduler_AgendaView_AppointmentDayOfMonthProperties
      • getAppointmentProperties As ASScheduler_AgendaView_AppointmentProperties
      • getAppointmentWeekDayProperties As ASScheduler_AgendaView_AppointmentWeekDayProperties
      • getMonthNameShort As ASScheduler_MonthNameShort
      • getMonthProperties As ASScheduler_AgendaView_MonthProperties
      • getStartDate As Long
      • getTimelineProperties As ASScheduler_AgendaView_TimelineProperties
      • getWeekNameShort As ASScheduler_WeekNameShort
      • getWeekProperties As ASScheduler_AgendaView_WeekProperties
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • RefreshScheduler As String
      • Scroll2Date (Date As Long)
      • setStartDate (StartDate As Long) As String
    • Properties:
      • AEmptyStateProperties As ASScheduler_AgendaView_EmptyStateProperties [read only]
      • API As ASSchedulerAPI [read only]
        Gets the API
      • AppointmentDayOfMonthProperties As ASScheduler_AgendaView_AppointmentDayOfMonthProperties [read only]
      • AppointmentProperties As ASScheduler_AgendaView_AppointmentProperties [read only]
      • AppointmentWeekDayProperties As ASScheduler_AgendaView_AppointmentWeekDayProperties [read only]
      • MonthNameShort As ASScheduler_MonthNameShort [read only]
      • MonthProperties As ASScheduler_AgendaView_MonthProperties [read only]
      • StartDate As Long
      • TimelineProperties As ASScheduler_AgendaView_TimelineProperties [read only]
      • WeekNameShort As ASScheduler_WeekNameShort [read only]
      • WeekProperties As ASScheduler_AgendaView_WeekProperties [read only]
  • ASScheduler_AgendaView_AppointmentDayOfMonthProperties
    • Fields:
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_AppointmentProperties
    • Fields:
      • CornerRadius As Float
      • Gap As Float
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • ShowDuration As Boolean
      • ShowStartEndTime As Boolean
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_AppointmentWeekDayProperties
    • Fields:
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_EmptyStateProperties
    • Fields:
      • BackgroundColor As Int
      • EmptyText As String
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_MonthProperties
    • Fields:
      • BackgroundColor As Int
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_TimelineProperties
    • Fields:
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • Width As Float
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_AgendaView_WeekProperties
    • Fields:
      • BackgroundColor As Int
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_Appointment
    • Fields:
      • Color As Int
      • Description As String
      • EndDate As Long
      • Id As Int
      • isFullDay As Boolean
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • isRecurring As Boolean
      • Name As String
      • RecurringInterval As Int
      • RecurringUnit As String
      • StartDate As Long
      • Tag As String
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_Blackout
    • Fields:
      • EndDate As Long
      • Id As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • StartDate As Long
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView
    • Events:
      • AppointmentClick (Appointment As ASScheduler_Appointment)
      • AppointmentLongClick (Appointment As ASScheduler_Appointment)
      • TimeBlockClick (StartDate As Long, EndDate As Long)
      • TimeBlockLongClick (StartDate As Long, EndDate As Long)
    • Fields:
      • mBase As B4XView
      • Tag As Object
    • Functions:
      • Back2CurrentDate As String
        Slides Back or Forward to the Current Date
      • Base_Resize (Width As Double, Height As Double)
      • Class_Globals As String
      • CreateASScheduler_DayView_AppointmentProperties (Height As Float, Gap As Float, CornerRadius As Float, xFont As B4XFont, TextColor As Int, OverviewGap As Boolean, ShowStartEndTime As Boolean, ShowDuration As Boolean) As ASScheduler_DayView_AppointmentProperties
      • CreateASScheduler_DayView_BlackoutProperties (Width As Float, Color As Int) As ASScheduler_DayView_BlackoutProperties
      • CreateASScheduler_DayView_CurrentTimeIndicatorProperties (Height As Float, Color As Int, FullWidth As Boolean) As ASScheduler_DayView_CurrentTimeIndicatorProperties
      • CreateASScheduler_DayView_HeaderTextProperties (TextColor As Int, TextFont As B4XFont) As ASScheduler_DayView_HeaderTextProperties
      • CreateASScheduler_DayView_TimelineProperties (Width As Float, BackgroundColor As Int, TextColor As Int, ShowGridLines As Boolean) As ASScheduler_DayView_TimelineProperties
      • CreateASScheduler_DayView_WeekNumberProperties (Width As Float, Height As Float, Color As Int, xFont As B4XFont, TextColor As Int, CornerRadius As Float) As ASScheduler_DayView_WeekNumberProperties
      • CreateASScheduler_DayView_WorkingProperties (StartHour As Int, EndHour As Int, NonWorkingDays As Int(), Color As Int, Active As Boolean) As ASScheduler_DayView_WorkingProperties
      • CreateScheduler As String
        Call this if you want to show the scheduler the user
        The Panel in the forderground is hiding smoothly
      • DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
        Base type must be Object
      • getAPI As ASSchedulerAPI
        Gets the API
      • getAppointmentProperties As ASScheduler_DayView_AppointmentProperties
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>14dip</code>
        Gap: <code>2dip</code>
        CornerRadius: <code>3dip</code>
        xFont: <code>xui.CreateDefaultFont(IIf(xui.IsB4i,12,10))</code>
        TextColor: <code>xui.Color_White</code>
      • getBlackoutProperties As ASScheduler_DayView_BlackoutProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,255,255,255)</code>
      • getBlockHeight As Float
      • getBodyColor As Int
      • getCurrentDateColor As Int
      • getCurrentTimeIndicatorLiveUpdate As Boolean
      • getCurrentTimeIndicatorProperties As ASScheduler_DayView_CurrentTimeIndicatorProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,221, 95, 96)</code>
        FullWidth: <code>False</code>
      • getDayCount As String
      • getDayCount_FiveDays As String
      • getDayCount_OneDay As String
      • getDayCount_SevenDays As String
      • getDayCount_ThreeDays As String
        ThreeDays
      • getDayCount_WorkWeek As String
      • getGridLineColor As Int
      • getHeaderColor As Int
      • getHeaderHeight As Float
      • getHeaderTextProperties As ASScheduler_DayView_HeaderTextProperties
        Call RefreshScheduler if you change something
        Default Values
        TextColor: <code>xui.Color_White</code>
        TextFont: <code>xui.CreateDefaultBoldFont(15)</code>
      • getHeaderVisibility As Boolean
      • getMonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_DayView1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • getSelectedBlockColor As Int
      • getShowMonthNames As Boolean
        Call RefreshScheduler if you change something
      • getShowWeekNumbers As Boolean
        Call RefreshScheduler if you change something
      • getTimelineProperties As ASScheduler_DayView_TimelineProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>40dip</code>
        BackgroundColor: <code>0xFF131416</code>
        TextColor: <code>xui.Color_White</code>
      • getTimelineVisibility As Boolean
      • getTimeSystem As String
        Call RefreshScheduler if you change something
        <code>ASSchedulerUtils.TimeSystem_24h</code>
      • getWeekNameShort As ASScheduler_WeekNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_DayView1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • getWeekNumberProperties As ASScheduler_DayView_WeekNumberProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>20dip</code>
        Color: <code>xui.Color_ARGB(255,32, 33, 37)</code>
        xFont: <code>xui.CreateDefaultFont(15)</code>
        TextColor: <code>xui.Color_White</code>
      • getWorkingProperties As ASScheduler_DayView_WorkingProperties
        Call RefreshScheduler if you change something
        Default Values
        StartHour: <code>8</code>
        EndHour: <code>17</code>
        NonWorkingDays: <code>Array As Int(ASSchedulerUtils.WeekDay_Saturday,ASSchedulerUtils.WeekDay_Sunday)</code>
        Color: <code>xui.Color_ARGB(255,60, 64, 67)</code>
        Active: <code>True</code>
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • isValueInArray (SourceArray As Int(), TargetValue As Int) As Boolean
      • Nextweek As String
      • PreviousWeek As String
      • RefreshScheduler
        Rebuilds the visible scheduler items
      • Scroll2Date (Date As Long) As String
        Scrolls to the date
        Builds the view new if the date was not in range
      • setAppointmentProperties (DayView_AppointmentProperties As ASScheduler_DayView_AppointmentProperties) As String
      • setBlackoutProperties (DayView_BlackoutProperties As ASScheduler_DayView_BlackoutProperties) As String
      • setBlockHeight (Height As Float) As String
        Call RefreshScheduler if you change something
        Default: 20dip
      • setBodyColor (Color As Int) As String
        Call RefreshScheduler if you change something
      • setCurrentDateColor (Color As Int) As String
        Call RefreshScheduler if you change something
      • setCurrentTimeIndicatorLiveUpdate (Enabled As Boolean) As String
        If True then indicator moves 1 time per minute to always show the most current time
      • setCurrentTimeIndicatorProperties (DayView_CurrentTimeIndicatorProperties As ASScheduler_DayView_CurrentTimeIndicatorProperties) As String
      • setDayCount (DayCount As String)
        Changes the number of days that are visible
        The view updates itself
        <code> ASScheduler_DayView1.DayCount = ASScheduler_DayView1.DayCount_FiveDays</code>
      • setGridLineColor (Color As Int) As String
        Call RefreshScheduler if you change something
      • setHeaderColor (Color As Int) As String
        Call RefreshScheduler if you change something
      • setHeaderHeight (Height As Float) As String
        Call RefreshScheduler if you change something
      • setHeaderTextProperties (DayView_HeaderTextProperties As ASScheduler_DayView_HeaderTextProperties) As String
      • setHeaderVisibility (Visibility As Boolean) As String
        Hides or Show the Header
        Call RefreshScheduler if you change something
      • setMonthNameShort (MonthNameShort As ASScheduler_MonthNameShort) As String
      • setSelectedBlockColor (Color As Int) As String
        Call RefreshScheduler if you change something
      • setShowMonthNames (Show As Boolean) As String
        Call RefreshScheduler if you change something
      • setShowWeekNumbers (Show As Boolean) As String
      • SetTheme (Theme As ASScheduler_Theme) As String
        DarkMode Example
        <code>
        Dim Theme As ASScheduler_Theme
        Theme.Initialize
        'Background Colors
        Theme.BackgroundColor_Body = 0xFF202125
        Theme.BackgroundColor_Header = 0xFF131416
        Theme.BackgroundColor_Timeline = 0xFF131416
        Theme.BackgroundColor_WeekNumber = xui.Color_ARGB(255,32, 33, 37)
        Theme.BackgroundColor_GridLine = 0x64FFFFFF
        Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,255,255,255)
        'Text Colors
        Theme.TextColor_Header = xui.Color_White
        Theme.TextColor_Timeline = xui.Color_White
        Theme.TextColor_WeekNumber = xui.Color_White
        ASScheduler_DayView1.SetTheme(Theme)
        ASScheduler_DayView1.RefreshScheduler
        </code>
        LightMode Example
        <code>
        Dim Theme As ASScheduler_Theme
        Theme.Initialize
        'Background Colors
        Theme.BackgroundColor_Body = xui.Color_White
        Theme.BackgroundColor_Header = xui.Color_White
        Theme.BackgroundColor_Timeline = xui.Color_White
        Theme.BackgroundColor_WeekNumber = xui.Color_Gray
        Theme.BackgroundColor_GridLine = xui.Color_ARGB(100,0,0,0)
        Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,0,0,0)
        'Text Colors
        Theme.TextColor_Header = xui.Color_Black
        Theme.TextColor_Timeline = xui.Color_Black
        Theme.TextColor_WeekNumber = xui.Color_Black
        ASScheduler_DayView1.SetTheme(Theme)
        ASScheduler_DayView1.RefreshScheduler
        </code>
      • setTimelineProperties (DayView_TimelineProperties As ASScheduler_DayView_TimelineProperties) As String
      • setTimelineVisibility (Visibility As Boolean) As String
        Hides or Show the Timeline
        Call RefreshScheduler if you change something
      • setTimeSystem (System As String) As String
      • setWeekNameShort (WeekNameShort As ASScheduler_WeekNameShort) As String
      • setWeekNumberProperties (DayView_WeekNumberProperties As ASScheduler_DayView_WeekNumberProperties) As String
    • Properties:
      • API As ASSchedulerAPI [read only]
        Gets the API
      • AppointmentProperties As ASScheduler_DayView_AppointmentProperties
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>14dip</code>
        Gap: <code>2dip</code>
        CornerRadius: <code>3dip</code>
        xFont: <code>xui.CreateDefaultFont(IIf(xui.IsB4i,12,10))</code>
        TextColor: <code>xui.Color_White</code>
      • BlackoutProperties As ASScheduler_DayView_BlackoutProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,255,255,255)</code>
      • BlockHeight As Float
        Call RefreshScheduler if you change something
        Default: 20dip
      • BodyColor As Int
        Call RefreshScheduler if you change something
      • CurrentDateColor As Int
        Call RefreshScheduler if you change something
      • CurrentTimeIndicatorLiveUpdate As Boolean
        If True then indicator moves 1 time per minute to always show the most current time
      • CurrentTimeIndicatorProperties As ASScheduler_DayView_CurrentTimeIndicatorProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,221, 95, 96)</code>
        FullWidth: <code>False</code>
      • DayCount As String
        Changes the number of days that are visible
        The view updates itself
        <code> ASScheduler_DayView1.DayCount = ASScheduler_DayView1.DayCount_FiveDays</code>
      • DayCount_FiveDays As String [read only]
      • DayCount_OneDay As String [read only]
      • DayCount_SevenDays As String [read only]
      • DayCount_ThreeDays As String [read only]
        ThreeDays
      • DayCount_WorkWeek As String [read only]
      • GridLineColor As Int
        Call RefreshScheduler if you change something
      • HeaderColor As Int
        Call RefreshScheduler if you change something
      • HeaderHeight As Float
        Call RefreshScheduler if you change something
      • HeaderTextProperties As ASScheduler_DayView_HeaderTextProperties
        Call RefreshScheduler if you change something
        Default Values
        TextColor: <code>xui.Color_White</code>
        TextFont: <code>xui.CreateDefaultBoldFont(15)</code>
      • HeaderVisibility As Boolean
        Hides or Show the Header
        Call RefreshScheduler if you change something
      • MonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_DayView1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • SelectedBlockColor As Int
        Call RefreshScheduler if you change something
      • ShowMonthNames As Boolean
        Call RefreshScheduler if you change something
      • ShowWeekNumbers As Boolean
        Call RefreshScheduler if you change something
      • TimelineProperties As ASScheduler_DayView_TimelineProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>40dip</code>
        BackgroundColor: <code>0xFF131416</code>
        TextColor: <code>xui.Color_White</code>
      • TimelineVisibility As Boolean
        Hides or Show the Timeline
        Call RefreshScheduler if you change something
      • TimeSystem As String
        Call RefreshScheduler if you change something
        <code>ASSchedulerUtils.TimeSystem_24h</code>
      • WeekNameShort As ASScheduler_WeekNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_DayView1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • WeekNumberProperties As ASScheduler_DayView_WeekNumberProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>20dip</code>
        Color: <code>xui.Color_ARGB(255,32, 33, 37)</code>
        xFont: <code>xui.CreateDefaultFont(15)</code>
        TextColor: <code>xui.Color_White</code>
      • WorkingProperties As ASScheduler_DayView_WorkingProperties [read only]
        Call RefreshScheduler if you change something
        Default Values
        StartHour: <code>8</code>
        EndHour: <code>17</code>
        NonWorkingDays: <code>Array As Int(ASSchedulerUtils.WeekDay_Saturday,ASSchedulerUtils.WeekDay_Sunday)</code>
        Color: <code>xui.Color_ARGB(255,60, 64, 67)</code>
        Active: <code>True</code>
  • ASScheduler_DayView_AppointmentProperties
    • Fields:
      • CornerRadius As Float
      • Gap As Float
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • OverviewGap As Boolean
      • ShowDuration As Boolean
      • ShowStartEndTime As Boolean
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_BlackoutProperties
    • Fields:
      • Color As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • Width As Float
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_CurrentTimeIndicatorProperties
    • Fields:
      • Color As Int
      • FullWidth As Boolean
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_HeaderTextProperties
    • Fields:
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • TextFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_TimelineProperties
    • Fields:
      • BackgroundColor As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • ShowGridLines As Boolean
      • TextColor As Int
      • Width As Float
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_WeekNumberProperties
    • Fields:
      • Color As Int
      • CornerRadius As Float
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • Width As Float
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView_WorkingProperties
    • Fields:
      • Active As Boolean
      • Color As Int
      • EndHour As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • NonWorkingDays As Int()
      • StartHour As Int
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_HeatMapColor
    • Fields:
      • Color As Int
      • Count As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthNameShort
    • Fields:
      • April As String
      • August As String
      • December As String
      • February As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • January As String
      • July As String
      • June As String
      • March As String
      • May As String
      • November As String
      • October As String
      • September As String
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView
    • Events:
      • AppointmentClick (Appointment As ASScheduler_Appointment)
      • AppointmentLongClick (Appointment As ASScheduler_Appointment)
      • DayClick (Date As Long)
      • DayLongClick (Date As Long)
      • HiddenAppointmentClick (ListOfAppointments As List)
      • HiddenAppointmentLongClick (ListOfAppointments As List)
    • Fields:
      • mBase As B4XView
      • Tag As Object
    • Functions:
      • Back2CurrentDate As String
        Slides Back or Forward to the Current Date
      • Base_Resize (Width As Double, Height As Double)
      • Class_Globals As String
      • CreateASScheduler_MonthView_AppointmentProperties (Height As Float, Gap As Float, LeftRightGap As Float, CornerRadius As Float, xFont As B4XFont, TextColor As Int) As ASScheduler_MonthView_AppointmentProperties
      • CreateASScheduler_MonthView_BlackoutProperties (Width As Float, Color As Int, GapBetween As Float) As ASScheduler_MonthView_BlackoutProperties
      • CreateASScheduler_MonthView_DayProperties (TextColor As Int) As ASScheduler_MonthView_DayProperties
      • CreateASScheduler_MonthView_HeaderTextProperties (TextColor As Int, TextFont As B4XFont, TextAlignment_Vertical As String, TextAlignment_Horizontal As String, BackgroundColor As Int) As ASScheduler_MonthView_HeaderTextProperties
      • CreateASScheduler_MonthView_HeatMapProperties (xFont As B4XFont, ShowCounter As Boolean, ColorCountList As List) As ASScheduler_MonthView_HeatMapProperties
      • CreateASScheduler_MonthView_MinimalismProperties (Height As Float, Gap As Float, BottomGap As Float) As ASScheduler_MonthView_MinimalismProperties
      • CreateASScheduler_MonthView_WeekNumberProperties (Width As Float, Color As Int, xFont As B4XFont, TextColor As Int) As ASScheduler_MonthView_WeekNumberProperties
      • CreateScheduler As String
        Call this if you want to show the scheduler the user
        The Panel in the forderground is hiding smoothly
      • DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
        Base type must be Object
      • getAPI As ASSchedulerAPI
        Gets the API
      • getAppointmentProperties As ASScheduler_MonthView_AppointmentProperties
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>14dip</code>
        Gap: <code>2dip</code>
        LeftRightGap: <code>2dip</code>
        CornerRadius: <code>3dip</code>
        xFont: <code>xui.CreateDefaultFont(IIf(xui.IsB4i,12,10))</code>
        TextColor: <code>xui.Color_White</code>
      • getBlackoutProperties As ASScheduler_MonthView_BlackoutProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,255,255,255)</code>
      • getDayProperties As ASScheduler_MonthView_DayProperties
      • getHeaderTextProperties As ASScheduler_MonthView_HeaderTextProperties
        Call RefreshHeader if you change something
        Default Values
        TextColor: <code>xui.Color_White</code>
        TextFont: <code>xui.CreateDefaultBoldFont(15)</code>
        TextAlignment_Vertical: <code>"CENTER"e</code>
        TextAlignment_Horizontal: <code>"CENTER"</code>
        BackgroundColor: <code>m_HeaderColor</code>
      • getHeaderVisibility As Boolean
      • getHeatMapProperties As ASScheduler_MonthView_HeatMapProperties
        Call RefreshScheduler if you change something
        Default Values
        xFont: <code>xui.CreateDefaultBoldFont(15)</code>
        ColorCountList Example:
        <code>
        Dim HeatColor As List : HeatColor.Initialize
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,214, 230, 133),0,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,140, 198, 101),2,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,68, 163, 64),4,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,30, 104, 35),7,xui.Color_White))
        </code>
      • getMinimalismProperties As ASScheduler_MonthView_MinimalismProperties
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>8dip</code>
        Gap: <code>4dip</code>
        BottomGap: <code>16dip</code>
      • getMonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_MonthView1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • getNumberOfWeeks As Int
        Gets or sets the number of visible weeks
      • getSchedulerFunction As String
      • getSchedulerFunction_Calendar As String
        Normal mode, Appointments and Blackout days are displayed
      • getSchedulerFunction_HeatMap As String
        A heatmap shows how the workload is on one day
        The more appointments in a day, the darker is the color
      • getSchedulerFunction_Minimalism As String
        Appointments are displayed as dots
      • getSelectedDate As Long
        gets or sets the selected date
      • getStartDate As Long
        Gets or sets the start date
      • getWeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_MonthView1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • getWeekNumberProperties As ASScheduler_MonthView_WeekNumberProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>20dip</code>
        Color: <code>xui.Color_ARGB(255,32, 33, 37)</code>
        xFont: <code>xui.CreateDefaultFont(15)</code>
        TextColor: <code>xui.Color_White</code>
      • HeaderTextProperties (MonthView_HeaderTextProperties As ASScheduler_MonthView_HeaderTextProperties) As String
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • RefreshHeader As String
        Rebuilds the header
      • RefreshScheduler
        Rebuilds the visible scheduler items
      • Scroll2Date (Date As Long) As String
        Scrolls to the date
        Builds the viw new if the date was not in range
      • setAppointmentProperties (MonthView_AppointmentProperties As ASScheduler_MonthView_AppointmentProperties) As String
      • setBlackoutProperties (MonthView_BlackoutProperties As ASScheduler_MonthView_BlackoutProperties) As String
      • setBodyColor (Color As Int) As String
        sets the body color
        Call RefreshScheduler to commit changes
      • setCurrentDateColor (Color As Int) As String
        Call RefreshScheduler to commit changes
      • setHeaderColor (Color As Int) As String
        sets the Header Color
      • setMonthNameShort (MonthNameShort As ASScheduler_MonthNameShort) As String
      • setNumberOfWeeks (Weeks As Int) As String
        Call RefreshScheduler to commit changes
      • setSchedulerFunction (Function As String) As String
        Changes the functionality of the scheduler
        <code>ASScheduler_MonthView1.SchedulerFunction = ASScheduler_MonthView1.SchedulerFunction_HeatMap</code>
      • setSelectedDate (date As Long) As String
        gets or sets the selected date
        Call RefreshScheduler to commit changes
      • setSelectedDateColor (Color As Int) As String
        Call RefreshScheduler to commit changes
      • setShowWeekNumbers (Show As Boolean) As String
        Gets or sets the number of visible weeks
        Call RefreshScheduler to commit changes
      • setStartDate (Date As Long) As String
        Gets or sets the start date
      • SetTheme (Theme As ASScheduler_Theme) As String
        DarkMode Example
        <code>
        Dim Theme As ASScheduler_Theme
        Theme.Initialize
        'Background Colors
        Theme.BackgroundColor_Body = 0xFF202125
        Theme.BackgroundColor_Header = 0xFF131416
        Theme.BackgroundColor_WeekNumber = xui.Color_ARGB(255,32, 33, 37)
        Theme.BackgroundColor_GridLine = 0x64FFFFFF
        Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,255,255,255)
        'Text Colors
        Theme.TextColor_Header = xui.Color_White
        Theme.TextColor_WeekNumber = xui.Color_White
        Theme.TextColor_Day_MonthView = xui.Color_White
        ASScheduler_DayView1.SetTheme(Theme)
        ASScheduler_DayView1.RefreshScheduler
        </code>
        LightMode Example
        <code>
        Dim Theme As ASScheduler_Theme
        Theme.Initialize
        'Background Colors
        Theme.BackgroundColor_Body = xui.Color_White
        Theme.BackgroundColor_Header = xui.Color_White
        Theme.BackgroundColor_Timeline = xui.Color_White
        Theme.BackgroundColor_WeekNumber = xui.Color_Gray
        Theme.BackgroundColor_GridLine = xui.Color_ARGB(100,0,0,0)
        Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,0,0,0)
        'Text Colors
        Theme.TextColor_Header = xui.Color_Black
        Theme.TextColor_Timeline = xui.Color_Black
        Theme.TextColor_WeekNumber = xui.Color_Black
        Theme.TextColor_Day_MonthView = xui.Color_Black
        ASScheduler_DayView1.SetTheme(Theme)
        ASScheduler_DayView1.RefreshScheduler
        </code>
      • setWeekNameShort (WeekNameShort As ASScheduler_WeekNameShort) As String
      • setWeekNumberProperties (MonthView_WeekNumberProperties As ASScheduler_MonthView_WeekNumberProperties) As String
    • Properties:
      • API As ASSchedulerAPI [read only]
        Gets the API
      • AppointmentProperties As ASScheduler_MonthView_AppointmentProperties
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>14dip</code>
        Gap: <code>2dip</code>
        LeftRightGap: <code>2dip</code>
        CornerRadius: <code>3dip</code>
        xFont: <code>xui.CreateDefaultFont(IIf(xui.IsB4i,12,10))</code>
        TextColor: <code>xui.Color_White</code>
      • BlackoutProperties As ASScheduler_MonthView_BlackoutProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>2dip</code>
        Color: <code>xui.Color_ARGB(152,255,255,255)</code>
      • BodyColor
        sets the body color
        Call RefreshScheduler to commit changes
      • CurrentDateColor
        Call RefreshScheduler to commit changes
      • DayProperties As ASScheduler_MonthView_DayProperties [read only]
      • HeaderColor
        sets the Header Color
      • HeaderVisibility As Boolean [read only]
      • HeatMapProperties As ASScheduler_MonthView_HeatMapProperties [read only]
        Call RefreshScheduler if you change something
        Default Values
        xFont: <code>xui.CreateDefaultBoldFont(15)</code>
        ColorCountList Example:
        <code>
        Dim HeatColor As List : HeatColor.Initialize
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,214, 230, 133),0,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,140, 198, 101),2,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,68, 163, 64),4,xui.Color_White))
        HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,30, 104, 35),7,xui.Color_White))
        </code>
      • MinimalismProperties As ASScheduler_MonthView_MinimalismProperties [read only]
        Call RefreshScheduler if you change something
        Default Values
        Height: <code>8dip</code>
        Gap: <code>4dip</code>
        BottomGap: <code>16dip</code>
      • MonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_MonthView1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • NumberOfWeeks As Int
        Gets or sets the number of visible weeks
      • SchedulerFunction As String
        Changes the functionality of the scheduler
        <code>ASScheduler_MonthView1.SchedulerFunction = ASScheduler_MonthView1.SchedulerFunction_HeatMap</code>
      • SchedulerFunction_Calendar As String [read only]
        Normal mode, Appointments and Blackout days are displayed
      • SchedulerFunction_HeatMap As String [read only]
        A heatmap shows how the workload is on one day
        The more appointments in a day, the darker is the color
      • SchedulerFunction_Minimalism As String [read only]
        Appointments are displayed as dots
      • SelectedDate As Long
        gets or sets the selected date
      • SelectedDateColor
        Call RefreshScheduler to commit changes
      • ShowWeekNumbers
        Gets or sets the number of visible weeks
        Call RefreshScheduler to commit changes
      • StartDate As Long
        Gets or sets the start date
      • WeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_MonthView1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • WeekNumberProperties As ASScheduler_MonthView_WeekNumberProperties
        Call RefreshScheduler if you change something
        Default Values
        Width: <code>20dip</code>
        Color: <code>xui.Color_ARGB(255,32, 33, 37)</code>
        xFont: <code>xui.CreateDefaultFont(15)</code>
        TextColor: <code>xui.Color_White</code>
  • ASScheduler_MonthView_AppointmentProperties
    • Fields:
      • CornerRadius As Float
      • Gap As Float
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • LeftRightGap As Float
      • TextColor As Int
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_BlackoutProperties
    • Fields:
      • Color As Int
      • GapBetween As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • Width As Float
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_DayProperties
    • Fields:
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_HeaderTextProperties
    • Fields:
      • BackgroundColor As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextAlignment_Horizontal As String
      • TextAlignment_Vertical As String
      • TextColor As Int
      • TextFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_HeatMapProperties
    • Fields:
      • ColorCountList As List
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • ShowCounter As Boolean
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_MinimalismProperties
    • Fields:
      • BottomGap As Float
      • Gap As Float
      • Height As Float
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_MonthView_WeekNumberProperties
    • Fields:
      • Color As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor As Int
      • Width As Float
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_Theme
    • Fields:
      • BackgroundColor_Blackout As Int
      • BackgroundColor_Body As Int
      • BackgroundColor_CurrentDate As Int
      • BackgroundColor_GridLine As Int
      • BackgroundColor_Header As Int
      • BackgroundColor_SelectedBlock As Int
      • BackgroundColor_SelectedDateColor_MonthView As Int
      • BackgroundColor_Timeline As Int
      • BackgroundColor_WeekNumber As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • TextColor_Day_MonthView As Int
      • TextColor_Header As Int
      • TextColor_Timeline As Int
      • TextColor_WeekNumber As Int
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_WeekNameShort
    • Fields:
      • Friday As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • Monday As String
      • Saturday As String
      • Sunday As String
      • Thursday As String
      • Tuesday As String
      • Wednesday As String
    • Functions:
      • Initialize
        Initializes the fields to their default value.
If you have features or something is still missing, let me know.
Changelog
  • 1.00
    • Release
  • 1.01
    • MonthView
      • B4A BugFix for Debug mode
  • 1.02 (read more)
    • General
      • Add some descriptions
    • MonthView
      • Appointments that go longer than 1 day and are not the 1st event from the start are now sorted by length so that the overlapping bar is correct
      • Add LeftRightGap to ASScheduler_MonthView_AppointmentProperties
      • Appointments longer than 1 day now also have a side gap left and right, but only the start and end points are affected.
      • Add Back2CurrentDate
        • Scrolls back to the current date
      • Add Scroll2Date - Scrolls or Jumps to the given date
        • Build the view new if the date was not in range
    • DayView
      • SelectedDateColor renamed to SelectedBlockColor (Designer and Property)
      • When you click on a block, the block will now be colored with the SelectedBlockColor color
        • If you click on a block 2 times, it becomes transparent again
        • Click and LongClick affected
      • Add Back2CurrentDate
        • Scrolls back to the current date
      • Add Scroll2Date - Scrolls or Jumps to the given date
        • Build the view new if the date was not in range
  • 1.03
    • API
      • Add DeleteAppointment - Removes an Appointment
      • Add DeleteBlackout - Removes an Blackout
    • SchedulerUtils
      • Add Enumeration TimeSystem_24h and TimeSystem_12h
    • DayView
      • Add get and set HeaderVisibility - Hides or Show the Header
      • Add get and set TimelineVisibility - Hides or Show the Timeline
      • Add get and set HeaderHeight
      • Add Designer Property TimeSystem - 24h or 12h
        • Default: 24h
        • 12h Displays AM and PM besides the time
        • 12h need more space in the timeline
      • Add get and set TimeSystem
      • Properties have now in the description the default values that you can simply copy
      • Add FullWidth to CurrentTimeIndicatorProperties - If true then the Current Time Indicator is then visible in every day, even if it is not the current day
        • Default: False
      • BugFixes
  • 1.04
    • MonthView
      • Properties have now in the description the default values that you can simply copy
      • Add Designer Property HeaderVisibility - Hides or Show the Header
    • DayView
      • Add Designer Property HeaderVisibility - Hides or Show the Header
      • Add Designer Property TimelineVisibility - Hides or Show the Timeline
  • 1.05
    • DayView
      • BugFix
  • 1.06
    • DayView
      • BugFixes
    • MonthView
      • BugFixes
  • 1.07
    • MonthView
      • BugFixes
  • 1.08
    • DayView
      • Add ShowWeekNumbers
        • Default: False
      • Add Designer Property ShowWeekNumbers
      • ASViewPager Adaptations through updates
        • You need ASViewPager V1.29+
  • 1.09
    • DayView
      • Important performance improvements
      • You need ASViewPager V1.31+
  • 1.10
    • MonthView
      • Important performance improvements
  • 1.11
    • MonthView
      • BugFix
  • 1.12
    • MonthView
      • BugFixes
    • ASSchedulerAPI
      • CreateAppointment - Return Type is now ASScheduler_Appointment and returns the inserted ID with the all other infos from the object
    • ASSchedulerUtils
      • Add InitializeAPI - Initializes the scheduler API
      • Add API - Now you have access to the Scheduler API everywhere in your project, even if there is no MonthView or DayView available.
  • 1.13 (read more)
    • API
      • BugFixes
      • Add GetCustomQuery - Custom get query
        • Columns,Table,Where,Args
        • The Database structure you find here
    • DayView
      • BugFixes
      • Add Designer Property ShowMonthNames - Shows the Month name in the header
        • Default: False
        • As Value the MonthNameShort list is used
  • 1.14
    • API
      • GetAppointmentCountInRange if Parameter DurationLongerThanOneDay = True Then isFullDay = True are also returned
    • DayView
      • If Appointment isFullDay = True Then the appointment is displayed at the top
  • 1.15
    • DayView
      • BugFixes
      • Add get and set DayCount - Changes the number of days that are visible
  • 1.16
    • DayView
      • BugFixes
    • Genereal
      • B4I The GestureRecognizer is no longer needed
  • 1.17 (read more)
    • Utils
      • Add Type ASScheduler_Theme
    • DayView
      • BugFixes
      • A few properties added that were still missing
      • Add Designer Property GridLineColor - Color of the Grid lines
      • Add SetTheme - You can fast change the Appereance of the Scheduler
        • 2 Examples in the Description (DarkMode and LightMode)
        • Call RefreshScheduler if you want to commit the colors
  • 1.18 (read more)
    • MonthView
      • Add Type ASScheduler_MonthView_DayProperties
        • TextColor
      • Add Designer Property GridLineColor - Color of the Grid lines
      • Add SetTheme - You can fast change the Appereance of the Scheduler
        • 2 Examples in the Description (DarkMode and LightMode)
        • Call RefreshScheduler and RefreshHeader if you want to commit the colors
  • 1.19 (read more)
    • DayView
      • BugFixes
      • Add Designer Property FullHourGridLinesHighlighting - The full hour is highlighted in the grid
        • Default: False
      • Add ShowGridLines to TimelineProperties - shows the grid lines in the timeline
        • Default: False
  • 1.20 (read more)
    • MonthView
      • Add Designer Property SchedulerFunction - You can switch between the normal calendar or a HeatMap
        • Default: Calendar
      • Add HeatMap - The HeatMap shows graphically how the load is on a day
      • Add Minimalism - Appointments are displayed as dots
      • New Blackout day drawing
    • DayView
      • Add NextWeek - Scrolls to the next page
      • Add PreviousWeek - Scrolls to the previous page
      • New Blackout day drawing
      • Add OverviewGap Property to ASScheduler_DayView_AppointmentProperties - If True then the appointments have a gap to the next appointment the next day
        • Default: True
        • Helps clarity
    • Utils
      • Add Type ASScheduler_HeatMapColor
        • Color - Count Color
        • Count - From which number should this color be displayed
        • TextColor - The text color for this heat level
    • API
      • Add GetAppointmentCountOnOneDay
      • Add Appointments_Description to the table
        • is not yet used by the scheduler for displaying
        • CreateASScheduler_Appointment and CreateASScheduler_AppointmentRecurring have a breaking change to add this property
  • 1.21
    • MonthView
      • Minor adjustments
    • DayView
      • Minor adjustments
    • API
      • BugFixes
      • Recurring Appointments rework
  • 1.22
    • API
      • BugFixes
      • Add Appointments_Tag to dt_Appointments
        • Can contain json string or numbers
        • Datatype: TEXT
  • 1.23
    • BugFixes
  • 1.24 (read more)
    • DayView
      • ShowStartEndTime added to AppointmentProperties
        • Default: False
        • Displays the start and end time of the appointment
      • ShowDuration added to AppointmentProperties
        • Default: False
        • Displays the duration of the appointment
          • e.g.: 4h30m or 4h or 30m
      • Add get and set BlockHeight
        • Default: 20dip
  • 2.00 (read more)
    • DayView
      • The list now always scrolls automatically to the current time, so that it is always visible by default and the user does not have to scroll first
      • Add Type ASScheduler_DayView_WorkingProperties
        • StartHour - When to start work
          • 8
        • EndHour -When closing time
          • 17
        • NonWorkingDays
          • Array As Int(ASSchedulerUtils.WeekDay_Saturday,ASSchedulerUtils.WeekDay_Sunday)
        • Color - The color of the blocks that is not working time
        • Active
          • Default: False
    • MonthView
      • BugFixes
    • AgendaView
      • A new type of view
      • Lists all appointments
  • 2.01
    • AgendaView
      • B4J Resize BugFix
      • BugFixes
      • Add RebuildScheduler - Clears the list and rebuilds it
        • If you Delete Appointments, then call this function
        • The function does not remember which day the scheduler is currently on
          • So set the ASScheduler_AgendaView1.StartDate = DateTime.Now property if you want to spawn to a special date and not on the start date
    • Utils
      • InitializeAPI removed
        • The code is now in the getAPI function
    • API
      • Add UpdateAppointment - The function can be used to update an already existing appointment
        • Dont forget to call RefreshScheduler in the views to update it visual
  • 2.02
    • API
      • Add dt_SpecialDays
      • Add CRUD functions for the new table dt_SpecialDays
    • Utils
      • Add Type ASScheduler_SpecialDay
    • CalendarView
      • A new type of view
      • Divided into 2 new views
        • ASScheduler_CalendarViewMonth
          • Monthly overview
          • Fast navigation option if you click on the header
      • ASScheduler_CalendarViewWeek
        • Week overview
  • 2.03
    • CalendarView
      • B4A Debug mode BugFix
      • A "+" sign is now displayed next to the appointments if there are more appointments than there is space for
Have Fun :)
Minimum Donation Value: 25
Please write Scheduler in the order description, thanks.
 

Attachments

  • GestureRecognizer.bas
    11.2 KB · Views: 98
  • MonthView Example.zip
    71 KB · Views: 125
  • V1.09 Backup ASScheduler.zip
    23.7 KB · Views: 69
  • DayView Example.zip
    181.1 KB · Views: 57
  • MonthView Example.zip
    180.4 KB · Views: 60
  • AgendaView Example.zip
    71.5 KB · Views: 45
  • CalendarView Example.zip
    71.8 KB · Views: 29
  • ASScheduler.zip
    49.9 KB · Views: 22
Last edited:

Alexander Stolte

Expert
Licensed User
This lib looks great.
Thats nice.
User displays his appointments in the view. (this lib obviously can do this)
Yes, the lib. can show your Appointments
User selects a date and time. (Does the lib let user select a cell and parses the date & time / or even better UnixTime for me?)
In the day view, you can click on a cell and get back the start and end time of the block.
In the month view, when you click on a day, you get back the day with the current time.
But you can also let the user enter a date and time through a dialog (not in the lib.) and just add this to the API.

So I end up having the Start Time of the Event. I then close the view again and continue with my code.
When you click on an appointment, you get back an "Appointment" object and there is a start and end.

Is this possible with this lib?
I do not know if I could answer your questions, since the lib. grows with its users, can talk about it if something is missing.
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.12
    • MonthView
      • BugFixes
    • ASSchedulerAPI
      • CreateAppointment - Return Type is now ASScheduler_Appointment and returns the inserted ID with the all other infos from the object
    • ASSchedulerUtils
      • Add InitializeAPI - Initializes the scheduler API
      • Add API - Now you have access to the Scheduler API everywhere in your project, even if there is no MonthView or DayView available.
ASSchedulerUtils
ASSchedulerUtils is an code module and can be called anywhere in the project.
B4X:
ASSchedulerUtils.InitializeAPI
ASSchedulerUtils.API.DeleteAppointment(1)
 

DaOel

Member
Licensed User
Longtime User
Especially the dayView looks very nice. I do a syncronization between Google Calendar and ASScheduler. For now it looks very promising. Thanks for the great work.
Would it be possible to also add the month in the header of the DayView?
It shows only the weekday and day number. For instance:
B4X:
Wed
30.

However you get easily lost when you scroll much and forget about what month is referenced.
So my suggestion
B4X:
Wed
30.03.

or

B4X:
Wed
30.Mar.
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.13
    • API
      • BugFixes
      • Add GetCustomQuery - Custom get query
        • Columns,Table,Where,Args
        • The Database structure you find here
    • DayView
      • BugFixes
      • Add Designer Property ShowMonthNames - Shows the Month name in the header
        • Default: False
        • As Value the MonthNameShort list is used
ShowMonthNames
1648379153349.png

GetCustomQuery
B4X:
ASScheduler_DayView1.API.GetCustomQuery("Appointments_Name,Appointments_Color","dt_Appointments","Appointments_isRecurring = 1",Array As String())
ASScheduler_DayView1.API.GetCustomQuery("Appointments_Name,Appointments_Color","dt_Appointments","Appointments_isRecurring = ?",Array As String(1))
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.14
    • API
      • GetAppointmentCountInRange if Parameter DurationLongerThanOneDay = True Then isFullDay = True are also returned
    • DayView
      • If Appointment isFullDay = True Then the appointment is displayed at the top
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.17
    • Utils
      • Add Type ASScheduler_Theme
    • DayView
      • BugFixes
      • A few properties added that were still missing
      • Add Designer Property GridLineColor - Color of the Grid lines
      • Add SetTheme - You can fast change the Appereance of the Scheduler
        • 2 Examples in the Description (DarkMode and LightMode)
        • Call RefreshScheduler if you want to commit the colors
The DayView example was adapted in the first post and now includes the DarkMode/LightMode button to change the theme.
java_HWukfiZpLe.gif

Theming
Dark Mode Example:
Dim Theme As ASScheduler_Theme
Theme.Initialize

'Background Colors
Theme.BackgroundColor_Body = 0xFF202125
Theme.BackgroundColor_Header = 0xFF131416
Theme.BackgroundColor_Timeline = 0xFF131416
Theme.BackgroundColor_WeekNumber = xui.Color_ARGB(255,32, 33, 37)
Theme.BackgroundColor_GridLine = 0x64FFFFFF
Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,255,255,255)
'Text Colors
Theme.TextColor_Header = xui.Color_White
Theme.TextColor_Timeline = xui.Color_White
Theme.TextColor_WeekNumber = xui.Color_White

ASScheduler_DayView1.SetTheme(Theme)
ASScheduler_DayView1.RefreshScheduler
Light Mode Example:
Dim Theme As ASScheduler_Theme
Theme.Initialize

'Background Colors
Theme.BackgroundColor_Body = xui.Color_White
Theme.BackgroundColor_Header = xui.Color_White
Theme.BackgroundColor_Timeline = xui.Color_White
Theme.BackgroundColor_WeekNumber = xui.Color_Gray
Theme.BackgroundColor_GridLine = xui.Color_ARGB(100,0,0,0)
Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,0,0,0)
'Text Colors
Theme.TextColor_Header = xui.Color_Black
Theme.TextColor_Timeline = xui.Color_Black
Theme.TextColor_WeekNumber = xui.Color_Black

ASScheduler_DayView1.SetTheme(Theme)
ASScheduler_DayView1.RefreshScheduler
 

BluSky76

Member
Licensed User
Longtime User
Hi,
if i select i scroll forward i get these errors

java.lang.OutOfMemoryError: Failed to allocate a 16588812 byte allocation with 10170784 free bytes and 9MB until OOM

Error occurred on line: 992 (ASScheduler_DayView)...............
raiseEvent for xpnl_pagearea2_touch returned null
 

Alexander Stolte

Expert
Licensed User
By selecting a date higher than today, errors are obtained while there are no errors if you select a date lower than today.
I can not reproduce it.

You mean, if you use the function "Scroll2Date" in B4A and select a date e.g. 18.10.2022 then said error occurs?

I have tried it in release mode, debug mode, with different smartphones, I have not managed to crash the app with this error.

Stackoverflow says:
"OutOfMemoryError is the most common problem that occurs in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.

As mentioned by Aleksey, you can add the below entities in your manifest file android:hardwareAccelerated="false" , android:largeHeap="true" it will work for some environments."

That means, try to add the following to the manifest:
B4X:
SetApplicationAttribute(android:hardwareAccelerated, "false")
SetApplicationAttribute(android:largeHeap, "true")

I think the problem comes from the fact that I draw the lines for each page with canvas, then the problem should also occur when starting the app with you, because I do not do anything else than there with the function.
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.18
    • MonthView
    • Add Type ASScheduler_MonthView_DayProperties
      • TextColor
    • Add Designer Property GridLineColor - Color of the Grid lines
    • Add SetTheme - You can fast change the Appereance of the Scheduler
      • 2 Examples in the Description (DarkMode and LightMode)
      • Call RefreshScheduler and RefreshHeader if you want to commit the colors
The MonthView example was adapted in the first post and now includes the DarkMode/LightMode button to change the theme.
java_jcA4Ie0Sov.gif

ezgif.com-gif-maker (4).gif

Dark Mode Example:
Dim Theme As ASScheduler_Theme
Theme.Initialize

'Background Colors
Theme.BackgroundColor_Body = 0xFF202125
Theme.BackgroundColor_Header = 0xFF131416
Theme.BackgroundColor_WeekNumber = xui.Color_ARGB(255,32, 33, 37)
Theme.BackgroundColor_GridLine = 0x64FFFFFF
Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,255,255,255)
'Text Colors
Theme.TextColor_Header = xui.Color_White
Theme.TextColor_WeekNumber = xui.Color_White
Theme.TextColor_Day_MonthView = xui.Color_White

ASScheduler_DayView1.SetTheme(Theme)
ASScheduler_DayView1.RefreshScheduler
Light Mode Example:
Dim Theme As ASScheduler_Theme
Theme.Initialize

'Background Colors
Theme.BackgroundColor_Body = xui.Color_White
Theme.BackgroundColor_Header = xui.Color_White
Theme.BackgroundColor_Timeline = xui.Color_White
Theme.BackgroundColor_WeekNumber = xui.Color_Gray
Theme.BackgroundColor_GridLine = xui.Color_ARGB(100,0,0,0)
Theme.BackgroundColor_Blackout = xui.Color_ARGB(152,0,0,0)
'Text Colors
Theme.TextColor_Header = xui.Color_Black
Theme.TextColor_Timeline = xui.Color_Black
Theme.TextColor_WeekNumber = xui.Color_Black
Theme.TextColor_Day_MonthView = xui.Color_Black

ASScheduler_DayView1.SetTheme(Theme)
ASScheduler_DayView1.RefreshScheduler
 

Alexander Stolte

Expert
Licensed User
Update
  • 1.19
    • DayView
      • BugFixes
      • Add Designer Property FullHourGridLinesHighlighting - The full hour is highlighted in the grid
        • Default: False
      • Add ShowGridLines to TimelineProperties - shows the grid lines in the timeline
        • Default: False
Left on the Timeline are TimelineProperties.ShowGridLines = True
With FullHourGridLinesHighlighting = True every new hour are thicker than the half hour
4eLv5kAslFzO4dBrunukehN9vh7zZA8u5IG75owdwlY6wlxt5y.png
 

Alexander Stolte

Expert
Licensed User
Big Update
Update

  • 1.20
    • MonthView
      • Add Designer Property SchedulerFunction - You can switch between the normal calendar or a HeatMap
        • Default: Calendar
      • Add HeatMap - The HeatMap shows graphically how the load is on a day
      • Add Minimalism - Appointments are displayed as dots
      • New Blackout day drawing
    • DayView
      • Add NextWeek - Scrolls to the next page
      • Add PreviousWeek - Scrolls to the previous page
      • New Blackout day drawing
      • Add OverviewGap Property to ASScheduler_DayView_AppointmentProperties - If True then the appointments have a gap to the next appointment the next day
        • Default: True
        • Helps clarity
    • Utils
      • Add Type ASScheduler_HeatMapColor
        • Color - Count Color
        • Count - From which number should this color be displayed
        • TextColor - The text color for this heat level
    • API
      • Add GetAppointmentCountOnOneDay
      • Add Appointments_Description to the table
        • is not yet used by the scheduler for displaying
        • CreateASScheduler_Appointment and CreateASScheduler_AppointmentRecurring have a breaking change to add this property
All sample projects have been adapted to this version.
Breaking change on CreateASScheduler_Appointment and CreateASScheduler_AppointmentRecurring, you need to at a description parameter, that can be "" if you dont want a description.
New Blackout drawing
l4qougURqz8b2OV42CwdcMIfFRPO9KkJQs1U1CHIoXpMhwSHx1.jpeg

5gv0uDxD0fIxzkukYwEYPjo45ZDduit4tItzDARbeAMUUcoaup.jpeg
DayView - Appointment OverviewGap
W9mViVPuXhs8FUQwCbazwVvMVaG7PUBdmMoP7LlrdkMPyOXsbS.jpeg

MonthView - SchedulerFunction - HeatMap
On the heatmap you can see graphically how much workload there is on a given day. That is, whether there are many or few appointments on a day.
B4X:
    Dim HeatColor As List : HeatColor.Initialize
    HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,214, 230, 133),0,xui.Color_White))
    HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,140, 198, 101),2,xui.Color_White))
    HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,68, 163, 64),4,xui.Color_White))
    HeatColor.Add(ASSchedulerUtils.CreateASScheduler_HeatMapColor(xui.Color_ARGB(255,30, 104, 35),7,xui.Color_White))
  
    ASScheduler_MonthView1.HeatMapProperties.ColorCountList = HeatColor
The "Count" specifies from which appointment number a certain color should be displayed.

HmdJBMXyvFbEsh13rASvVYi5ed0gFkywQpqj2zyK1RcFPi72HD.png

MonthView - SchedulerFunction - Minimalism

In this function, you see all appointments as circles, the advantage of this is that you can use the scheduler on a small area. A example usecase will be added to the scheduler later.
5ajrgn9V1TyMk6LKNHtqF6ujtAPKmleSbHVAQ5no18R0OWPF7e.png
 
Top