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.

You want to try the views out? Then click here

This library is not free, because, it cost a lot of time and gray hair to create such views.
Thanks for your understanding. :)

IMG_1114 (1).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

All Features of the DayView:
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: 3.00

  • ASSchedulerAPI
    • Functions:
      • Class_Globals As String
      • ClearAppointments As String
        Deletes all Appointments
      • ClearBlackouts As String
        Deletes all Blackouts
      • ClearSpecialDays As String
        Deletes all SpecialDays
      • 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>
      • CreateSpecialDay (SpecialDay As ASScheduler_SpecialDay) As ASScheduler_SpecialDay
      • DeleteAppointment (Id As Int) As String
        Removes an Appointment
      • DeleteBlackout (Id As Int) As String
        Removes an Appointment
      • DeleteSpecialDa (Id As Int) As String
      • 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
      • GetDateSpecialDay (Date As Long) As ASScheduler_SpecialDay
      • GetIsDayBlackout (Date As Long) As Boolean
        Checks if there is a blackout on that day
      • getSQL As SQL
      • 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.
      • UpdateAppointment (Appointment As ASScheduler_Appointment) As ASScheduler_Appointment
      • UpdateSpecialDay (SpecialDay As ASScheduler_SpecialDay) As ASScheduler_SpecialDay
    • Properties:
      • SQL As SQL [read only]
  • ASSchedulerInternShared
    • Fields:
      • SQL As SQL
    • Functions:
      • CreateAppointment (Parent As B4XView, Appointment As ASScheduler_Appointment, CurrentDay As Long, g_AppointmentProperties As ASScheduler_MonthView_AppointmentProperties) 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
      • CreateHeaderItem (Text As String, HeaderTextProperties As ASScheduler_MonthView_HeaderTextProperties) As B4XView
      • CreateHiddenAppointments (Parent As B4XView, Text As String, ListOfHiddenAppointments As List, g_AppointmentProperties As ASScheduler_MonthView_AppointmentProperties, DividerSize As Float) As String
        +3 More Appointments, but not visible
      • 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
      • 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_SpecialDay (Id As Int, Name As String, Date As Long) As ASScheduler_SpecialDay
        Id -The appointment ID, set this to 0 if you want to create an special day
      • CreateASScheduler_SpecialDayRecurring (Id As Int, Name As String, Date As Long, isRecurring As Boolean, RecurringUnit As String, RecurringInterval As Int, isAlways As Boolean) As ASScheduler_SpecialDay
        Id -The appointment ID, set this to 0 if you want to create an special day
        isRecurring - If True then the appointment will be recurring
        RecurringUnit - day - week - month - year are valid
        Use ASSchedulerUtils.Recurring_Day for the RecurringUnits
      • 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()
      • GetDaysBetween2Dates (StartDate As Long, EndDate As Long, RequiredDayOfWeek As Int) As List
        RequiredDayOfWeek - week starts at 1=sunday,2=monday...
        Call it if you are done adding new special days, makes this way makes the performance better
      • 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
      • 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)
      • AppointmentDoubleClick (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
      • getAPI As ASSchedulerAPI
        Gets the API
      • getAppointmentDayOfMonthProperties As ASScheduler_AgendaView_AppointmentDayOfMonthProperties
      • getAppointmentProperties As ASScheduler_AgendaView_AppointmentProperties
      • getAppointmentWeekDayProperties As ASScheduler_AgendaView_AppointmentWeekDayProperties
      • getEmptyStateProperties As ASScheduler_AgendaView_EmptyStateProperties
      • 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.
      • RebuildScheduler
        Clears the list and rebuilds it
        Set the StartDate if you want a new date
      • RefreshScheduler As String
        Reloads all visible elements
        If you want to remove appointments then call RebuildScheduler
      • Scroll2Date (Date As Long)
      • setMonthNameShort (MonthNameShort As ASScheduler_MonthNameShort) As String
      • setStartDate (StartDate As Long) As String
      • setWeekNameShort (WeekNameShort As ASScheduler_WeekNameShort) As String
    • Properties:
      • 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]
      • EmptyStateProperties As ASScheduler_AgendaView_EmptyStateProperties [read only]
      • MonthNameShort As ASScheduler_MonthNameShort
      • MonthProperties As ASScheduler_AgendaView_MonthProperties [read only]
      • StartDate As Long
      • TimelineProperties As ASScheduler_AgendaView_TimelineProperties [read only]
      • WeekNameShort As ASScheduler_WeekNameShort
      • 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
      • Just4Sorting As String
      • 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_CalendarViewMonth
    • Events:
      • AppointmentClick (Appointment As ASScheduler_Appointment)
      • AppointmentDoubleClick (Appointment As ASScheduler_Appointment)
      • AppointmentLongClick (Appointment As ASScheduler_Appointment)
      • CustomDrawDay (Date As Long, Views As ASScheduler_CalendarView_CustomDrawDay)
      • HiddenAppointmentClick (ListOfAppointments As List)
      • HiddenAppointmentLongClick (ListOfAppointments As List)
      • SelectedDateChanged (Date As Long)
    • Fields:
      • mBase As B4XView
      • Tag As Object
    • Functions:
      • ChangeView (NewView As String)
      • Class_Globals As String
      • CreateASScheduler_CalendarView_AppointmentProperties (Height As Float, Gap As Float, BottomGap As Float) As ASScheduler_CalendarView_AppointmentProperties
      • CreateASScheduler_CalendarView_BodyProperties (xFont As B4XFont, TextColor As Int) As ASScheduler_CalendarView_BodyProperties
      • CreateASScheduler_CalendarView_HeaderProperties (Height As Float, xFont As B4XFont, TextColor As Int) As ASScheduler_CalendarView_HeaderProperties
      • CreateASScheduler_CalendarView_SpecialDayProperties (Color As Int) As ASScheduler_CalendarView_SpecialDayProperties
      • CreateASScheduler_CalendarView_WeekNumberProperties (Width As Float, Color As Int, xFont As B4XFont, TextColor As Int, Text As String) As ASScheduler_CalendarView_WeekNumberProperties
      • 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
      • 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>
      • getBodyColor As Int
      • getBodyProperties As ASScheduler_CalendarView_BodyProperties
      • getCurrentDateColor As Int
      • getCurrentView_CenturyView As String
      • getCurrentView_DecadeView As String
      • getCurrentView_MonthView As String
      • getCurrentView_YearView As String
      • getGridLineColor As Int
      • getHeaderColor As Int
      • getHeaderPanel As B4XView
        You can customize the appereance of the header
        With the following code you can customize the control elements that are visible in the header:
        <code>
        'Middle Text Label
        Dim xlbl_Header As B4XView = AS_DatePicker1.HeaderPanel.GetView(0)
        'Left Arrow Label
        Dim xlbl_ArrowLeft As B4XView = AS_DatePicker1.HeaderPanel.GetView(1)
        'Right Arrow Label
        Dim xlbl_ArrowRight As B4XView = AS_DatePicker1.HeaderPanel.GetView(2)
        </code>
      • getHeaderProperties As ASScheduler_CalendarView_HeaderProperties
      • getMonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_CalendarViewMonth1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • getSchedulerFunction As String
      • getSchedulerFunction_Calendar As String
      • getSchedulerFunction_MonthView As String
      • getSelectedDate As Long
      • getSelectedDateColor As Int
      • getShowAppointments As Boolean
        Call RefreshScheduler if you change something
      • getShowGridLines As Boolean
      • getShowHeader As Boolean
      • getShowWeekNumbers As Boolean
        Gets or sets the number of visible weeks
        Call Refresh to commit changes
      • getSpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties
      • getStartDate As Long
      • getWeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_CalendarViewMonth1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • getWeekNumberProperties As ASScheduler_CalendarView_WeekNumberProperties
        Call Refresh 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>
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • NextMonth As String
      • PreviousMonth As String
      • RefreshScheduler As String
        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 (MonthView_AppointmentProperties As ASScheduler_MonthView_AppointmentProperties) As String
      • setBlackoutProperties (MonthView_BlackoutProperties As ASScheduler_MonthView_BlackoutProperties) As String
      • setBodyColor (Color As Int) As String
      • setBodyProperties (BodyProperties As ASScheduler_CalendarView_BodyProperties) As String
      • setCurrentDateColor (Color As Int) As String
      • setFirstDayOfWeek (number As Int) As String
        1-7
        Friday = 1
        Thursday = 2
        Wednesday = 3
        Tuesday = 4
        Monday = 5
        Sunday = 6
        Saturday = 7
      • setGridLineColor (Color As Int) As String
      • setHeaderColor (Color As Int) As String
      • setHeaderProperties (HeaderProperties As ASScheduler_CalendarView_HeaderProperties) As String
      • setMonthNameShort (MonthNameShort As ASScheduler_MonthNameShort) As String
      • setSchedulerFunction (FunctionName As String) As String
      • setSelectedDate (Date As Long) As String
      • setSelectedDateColor (Color As Int) As String
      • setShowAppointments (Visible As Boolean) As String
      • setShowGridLines (Show As Boolean) As String
      • setShowHeader (Visible As Boolean) As String
      • setShowWeekNumbers (Show As Boolean) As String
      • setSpecialDayProperties (SpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties) As String
      • setStartDate (Date As Long) As String
      • setWeekNameShort (WeekNameShort As ASScheduler_WeekNameShort) As String
      • setWeekNumberProperties (WeekNumberProperties As ASScheduler_CalendarView_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 As Int
      • BodyProperties As ASScheduler_CalendarView_BodyProperties
      • CurrentDateColor As Int
      • CurrentView_CenturyView As String [read only]
      • CurrentView_DecadeView As String [read only]
      • CurrentView_MonthView As String [read only]
      • CurrentView_YearView As String [read only]
      • FirstDayOfWeek
        1-7
        Friday = 1
        Thursday = 2
        Wednesday = 3
        Tuesday = 4
        Monday = 5
        Sunday = 6
        Saturday = 7
      • GridLineColor As Int
      • HeaderColor As Int
      • HeaderPanel As B4XView [read only]
        You can customize the appereance of the header
        With the following code you can customize the control elements that are visible in the header:
        <code>
        'Middle Text Label
        Dim xlbl_Header As B4XView = AS_DatePicker1.HeaderPanel.GetView(0)
        'Left Arrow Label
        Dim xlbl_ArrowLeft As B4XView = AS_DatePicker1.HeaderPanel.GetView(1)
        'Right Arrow Label
        Dim xlbl_ArrowRight As B4XView = AS_DatePicker1.HeaderPanel.GetView(2)
        </code>
      • HeaderProperties As ASScheduler_CalendarView_HeaderProperties
      • MonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_CalendarViewMonth1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • SchedulerFunction As String
      • SchedulerFunction_Calendar As String [read only]
      • SchedulerFunction_MonthView As String [read only]
      • SelectedDate As Long
      • SelectedDateColor As Int
      • ShowAppointments As Boolean
        Call RefreshScheduler if you change something
      • ShowGridLines As Boolean
      • ShowHeader As Boolean
      • ShowWeekNumbers As Boolean
        Gets or sets the number of visible weeks
        Call Refresh to commit changes
      • SpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties
      • StartDate As Long
      • WeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_CalendarViewMonth1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • WeekNumberProperties As ASScheduler_CalendarView_WeekNumberProperties
        Call Refresh 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_CalendarViewWeek
    • Events:
      • CustomDrawDay (Date As Long, Views As ASScheduler_CalendarView_CustomDrawDay)
      • SelectedDateChanged (Date As Long)
    • Fields:
      • mBase As B4XView
      • Tag As Object
    • Functions:
      • Class_Globals As String
      • CreateASScheduler_CalendarView_AppointmentProperties (Height As Float, Gap As Float, BottomGap As Float) As ASScheduler_CalendarView_AppointmentProperties
      • CreateASScheduler_CalendarView_BodyProperties (xFont As B4XFont, TextColor As Int) As ASScheduler_CalendarView_BodyProperties
      • CreateASScheduler_CalendarView_HeaderProperties (Height As Float, xFont As B4XFont, TextColor As Int) As ASScheduler_CalendarView_HeaderProperties
      • CreateASScheduler_CalendarView_SpecialDayProperties (Color As Int) As ASScheduler_CalendarView_SpecialDayProperties
      • CreateASScheduler_CalendarView_WeekNumberProperties (Width As Float, Color As Int, xFont As B4XFont, TextColor As Int, Text As String) As ASScheduler_CalendarView_WeekNumberProperties
      • 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
      • DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
        Base type must be Object
      • getAPI As ASSchedulerAPI
        Gets the API
      • getBodyColor As Int
      • getBodyProperties As ASScheduler_CalendarView_BodyProperties
      • getCurrentDateColor As Int
      • getHeaderColor As Int
      • getHeaderPanel As B4XView
        You can customize the appereance of the header
        With the following code you can customize the control elements that are visible in the header:
        <code>
        'Middle Text Label
        Dim xlbl_Header As B4XView = AS_DatePicker1.HeaderPanel.GetView(0)
        'Left Arrow Label
        Dim xlbl_ArrowLeft As B4XView = AS_DatePicker1.HeaderPanel.GetView(1)
        'Right Arrow Label
        Dim xlbl_ArrowRight As B4XView = AS_DatePicker1.HeaderPanel.GetView(2)
        </code>
      • getHeaderProperties As ASScheduler_CalendarView_HeaderProperties
      • getMonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_CalendarViewWeek1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • getSelectedDateColor As Int
      • getShowAppointments As Boolean
        Call RefreshScheduler if you change something
      • getShowHeader As Boolean
      • getShowWeekNumbers As Boolean
        Gets or sets the number of visible weeks
        Call Refresh to commit changes
      • getSpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties
      • getStartDate As Long
      • getWeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_CalendarViewWeek1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • getWeekNumberProperties As ASScheduler_CalendarView_WeekNumberProperties
        Call Refresh 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>
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • NextWeek As String
      • PreviousWeek As String
      • RefreshScheduler As String
        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
      • setBodyColor (Color As Int) As String
      • setBodyProperties (BodyProperties As ASScheduler_CalendarView_BodyProperties) As String
      • setCurrentDateColor (Color As Int) As String
      • setFirstDayOfWeek (number As Int) As String
        1-7
        Friday = 1
        Thursday = 2
        Wednesday = 3
        Tuesday = 4
        Monday = 5
        Sunday = 6
        Saturday = 7
      • setHeaderColor (Color As Int) As String
      • setHeaderProperties (HeaderProperties As ASScheduler_CalendarView_HeaderProperties) As String
      • setMonthNameShort (MonthNameShort As ASScheduler_MonthNameShort) As String
      • setSelectedDateColor (Color As Int) As String
      • setShowAppointments (Visible As Boolean) As String
      • setShowHeader (Visible As Boolean) As String
      • setShowWeekNumbers (Show As Boolean) As String
      • setSpecialDayProperties (SpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties) As String
      • setStartDate (Date As Long) As String
      • setWeekNameShort (WeekNameShort As ASScheduler_WeekNameShort) As String
      • setWeekNumberProperties (WeekNumberProperties As ASScheduler_CalendarView_WeekNumberProperties) As String
    • Properties:
      • API As ASSchedulerAPI [read only]
        Gets the API
      • BodyColor As Int
      • BodyProperties As ASScheduler_CalendarView_BodyProperties
      • CurrentDateColor As Int
      • FirstDayOfWeek
        1-7
        Friday = 1
        Thursday = 2
        Wednesday = 3
        Tuesday = 4
        Monday = 5
        Sunday = 6
        Saturday = 7
      • HeaderColor As Int
      • HeaderPanel As B4XView [read only]
        You can customize the appereance of the header
        With the following code you can customize the control elements that are visible in the header:
        <code>
        'Middle Text Label
        Dim xlbl_Header As B4XView = AS_DatePicker1.HeaderPanel.GetView(0)
        'Left Arrow Label
        Dim xlbl_ArrowLeft As B4XView = AS_DatePicker1.HeaderPanel.GetView(1)
        'Right Arrow Label
        Dim xlbl_ArrowRight As B4XView = AS_DatePicker1.HeaderPanel.GetView(2)
        </code>
      • HeaderProperties As ASScheduler_CalendarView_HeaderProperties
      • MonthNameShort As ASScheduler_MonthNameShort
        Call RefreshScheduler if you change something
        <code>ASScheduler_CalendarViewWeek1.MonthNameShort = ASSchedulerUtils.CreateASScheduler_MonthNameShort("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec")</code>
      • SelectedDateColor As Int
      • ShowAppointments As Boolean
        Call RefreshScheduler if you change something
      • ShowHeader As Boolean
      • ShowWeekNumbers As Boolean
        Gets or sets the number of visible weeks
        Call Refresh to commit changes
      • SpecialDayProperties As ASScheduler_CalendarView_SpecialDayProperties
      • StartDate As Long
      • WeekNameShort As ASScheduler_WeekNameShort
        Call RefreshHeader if you change something
        <code>ASScheduler_CalendarViewWeek1.WeekNameShort = ASSchedulerUtils.CreateASScheduler_WeekNameShort("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")</code>
      • WeekNumberProperties As ASScheduler_CalendarView_WeekNumberProperties
        Call Refresh 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_CalendarView_AppointmentProperties
    • 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_CalendarView_BodyProperties
    • 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_CalendarView_CustomDrawDay
    • Fields:
      • BackgroundPanel As B4XView
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • xlbl_Date As B4XView
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_CalendarView_HeaderProperties
    • Fields:
      • 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_CalendarView_SpecialDayProperties
    • Fields:
      • Color As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_CalendarView_WeekNumberProperties
    • Fields:
      • Color As Int
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • Text As String
      • TextColor As Int
      • Width As Float
      • xFont As B4XFont
    • Functions:
      • Initialize
        Initializes the fields to their default value.
  • ASScheduler_DayView
    • Events:
      • AppointmentClick (Appointment As ASScheduler_Appointment)
      • AppointmentDoubleClick (Appointment As ASScheduler_Appointment)
      • AppointmentLongClick (Appointment As ASScheduler_Appointment)
      • Created
      • TimeBlockClick (StartDate As Long, EndDate As Long)
      • TimeBlockDoubleClick (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
      • CreateVirtualView (Left As Double, Top As Double, Right As Double, Height As Double, xpnl_ItemBackground As B4XView) As VirtualView
      • 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
      • getStartDate As Long
        Call RefreshComplete 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
      • Jump2Date (Date As Long) As String
        Jumps to the date
        Builds the view new if the date was not in range
      • Nextweek As String
      • PreviousWeek As String
      • RefreshComplete As String
      • RefreshScheduler As String
        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) As String
        Changes the number of days that are visible
        Call RefreshComplete if you change something
        <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
      • setStartDate (Date As Long) 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
        Call RefreshComplete if you change something
        <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
      • StartDate As Long
        Call RefreshComplete 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_TimeBlock
    • Fields:
      • EndDate As Long
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • StartDate As Long
    • 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)
      • AppointmentDoubleClick (Appointment As ASScheduler_Appointment)
      • AppointmentLongClick (Appointment As ASScheduler_Appointment)
      • Created
      • CustomDrawDay (Date As Long, Views As ASScheduler_MonthView_CustomDrawDay)
      • DayClick (Date As Long)
      • DayDoubleClick (Date As Long)
      • DayLongClick (Date As Long)
      • FirstVisibleDay (Date As Long)
      • HiddenAppointmentClick (ListOfAppointments As List)
      • HiddenAppointmentLongClick (ListOfAppointments As List)
      • LastVisibleDay (Date 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_MonthView_DayProperties (TextColor As Int, TextFont As B4XFont, TextFontCurrentDay As B4XFont) 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
      • getHeaderHeight As Float
        Default: 40dip
      • 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
      • GetVisibleDays As List
        Gets the visible days as list of ASScheduler_MonthView_CustomDrawDay
        <code>
        For Each CustomDrawDay As ASScheduler_MonthView_CustomDrawDay In ASScheduler_MonthView1.GetVisibleDays
        CustomDrawDay.BackgroundPanel.Color = xui.Color_Red
        Next
        </code>
      • 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>
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • RefreshComplete As String
        Rebuilds the calendar
      • RefreshHeader As String
        Rebuilds the header
      • RefreshScheduler As String
        Rebuilds the visible scheduler items
      • Scroll2Date (Date As Long)
        Scrolls to the date
        Builds the view new if the date was not in range
      • SelectDate (Date As Long) As String
      • 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
      • setCurrentDateTextColor (Color As Int) As String
        Call RefreshScheduler to commit changes
      • setHeaderColor (Color As Int) As String
        sets the Header Color
      • setHeaderHeight (Height As Float) As String
      • setHeaderTextProperties (MonthView_HeaderTextProperties As ASScheduler_MonthView_HeaderTextProperties) As String
      • 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
      • setSelectedDateTextColor (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
        Call RefreshComplete if you change the StartDate
      • 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
      • CurrentDateTextColor
        Call RefreshScheduler to commit changes
      • DayProperties As ASScheduler_MonthView_DayProperties [read only]
      • HeaderColor
        sets the Header Color
      • HeaderHeight As Float
        Default: 40dip
      • HeaderTextProperties 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>
      • 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
      • SelectedDateTextColor
        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_CustomDrawDay
    • Fields:
      • BackgroundPanel As B4XView
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • xlbl_Day As B4XView
      • xpnl_AppointmentBackground As B4XView
    • 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
      • TextFont As B4XFont
      • TextFontCurrentDay As B4XFont
    • 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_SpecialDay
    • Fields:
      • Date As Long
      • Id As Int
      • isAlways As Boolean
      • IsInitialized As Boolean
        Tests whether the object has been initialized.
      • isRecurring As Boolean
      • Name As String
      • RecurringInterval As Int
      • RecurringUnit As String
    • 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_CurrentDate As Int
      • TextColor_Day_MonthView As Int
      • TextColor_Header As Int
      • TextColor_SelectedDateColor 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
  • 3.00 (read more)
    • MonthView
      • BugFixes
      • Add Event "Created" - is triggered when the calendar is finished building
        • If you call RefreshComplete once the calendar is ready, the event will be triggered
      • Add RefreshComplete - Rebuilds the calendar
      • Event improvements
    • DayView
      • Performance improvments
      • Add Event "Created" - is triggered when the calendar is finished building
      • Add get and set StartDate
      • Add RefreshComplete - Rebuilds the calendar
      • Breaking change: setDayCount needs now a RefreshComplete if you want to apply it
    • CalendarViewMonth
      • Add Designer Property "SchedulerFunction"
        • Calendar - Normal DatePicker and the Appointments are displayed as circles under the date
        • MonthView - Same function as the MonthView, the view is used on the whole height and width, the appointments are with text
      • Add Events
        • AppointmentClick
        • AppointmentDoubleClick
        • AppointmentLongClick
        • AppointmentRightClick
        • HiddenAppointmentClick
        • HiddenAppointmentLongClick
      • Add Properties
        • get and set AppointmentProperties_MonthView
        • get and set BlackoutProperties
        • get and set SchedulerFunction
  • 3.01
  • 3.02
    • General
      • Appointment Click Event BugFixes
    • CalendarView
      • BugFixes
    • MonthView
      • B4J BugFix Scroll2Date
        • If the date is still within the range of the one already added, then it has scrolled one week too far. Unfortunately, it is not possible in B4J with such a long list, to land exactly on the item for which you have the index, it lands every time in release mode a week later or a week earlier.
  • 3.03
    • DayView
      • Add Designer Property StartHour - The calendar automatically scrolls to the set hour
        • Default: 0
      • Add Scroll2Hour
  • 3.04
    • DayView
      • BugFixes
  • 3.05
    • CalendarView
      • BugFixes
  • 3.06
    • CalendarView
      • BugFixes
  • 3.07 (read more)
    • CalendarView
      • Add Event CustomHeaderText
  • 3.08 (read more)
    • AgendaView
      • Theming BugFixes
      • Add SetTheme - You now have all the colors for the view in one function
      • Add 2 Examples for SetTheme
        • Theme_Dark
        • Theme_Light
      • Add get isCreated - Returns true after you call CreateScheduler
  • 3.09
    • AgendaView
      • B4I BugFix
  • 3.11 (read more)
    • CalendarView
      • BugFixes
      • Performance Improvements
    • DayView
      • BugFixes
      • Performance Improvements
    • MonthView
      • BugFixes
      • Performance Improvements
    • AgendaView
      • BugFixes
      • Performance Improvements
    • API
      • Add DeleteBlackoutOnDate
      • Add GetBlackoutIdFromDate
  • 3.12
    • MonthView
      • Add get isCreated
    • DayView
      • BugFix
      • Remove B4XCanvas - led to crashes if you swiped quickly
  • 3.13
    • DayView
      • BugFixes and Improvements
  • 3.14
    • General
      • BugFix for MacOS and Linux
        • Breaking change if you use this lib. in MacOS or Linux, the database is in a new location in the system to avoid crashes
  • 3.15 (read more)
    • DayView
      • Add Event CustomDrawAppointment
      • BugFix on 12h Time System
    • MonthView
      • Add Event CustomDrawAppointment
    • AgendaView
      • Add Event CustomDrawAppointment
  • 3.16
    • MonthView
      • B4A BugFix
  • 3.17 (read more)
    • API
      • Add BackupDatabase
      • Add RestoreDatabase
  • 3.18 (read more)
    • CalendarView
      • Add WeekNameProperties
      • Add Event CustomDrawHeader
  • 3.19 (read more)
    • DayView
      • Add Designer Property MultiDayAppointmentShowMode
        • Default: OnTop
      • Appointments that last longer than 1 day are now always displayed at the top.
        • Previously, you had to scroll to the top of the list to make them visible
        • This has caused confusion
      • BugFixes and Performance Improvements
    • API
      • BugFix on GetAppointmentCountInRange
  • 3.20
    • DayView
      • New get FirstVisibleDay
      • New get LastVisibleDay
      • New VisibleDateRangeChanged Event
  • 3.21
    • DayView
      • New set CanSwipe - If “False” the swiping is deactivated
      • New get and set AutoAppointmentTextColor - Automatically adjusts the text color of an appointment to the background color
    • MonthView
      • New get and set AutoAppointmentTextColor - Automatically adjusts the text color of an appointment to the background color
    • AgendaView
      • New get and set AutoAppointmentTextColor - Automatically adjusts the text color of an appointment to the background color
  • 3.22
    • Utils
      • Removed ASScheduler_Theme
    • MonthView
      • Removed SetTheme
      • Removed set HeaderColor -> is now in HeaderTextProperties
      • New set Theme - You can now switch to Light or Dark mode
      • New get Theme_Dark
      • New get Theme_Light
      • New Designer Property ThemeChangeTransition
        • Default: None
    • DayView
      • Removed SetTheme
      • New set Theme - You can now switch to Light or Dark mode
      • New get Theme_Dark
      • New get Theme_Light
      • New Designer Property ThemeChangeTransition
        • Default: None
    • AgendaView
      • Removed SetTheme
      • New set Theme - You can now switch to Light or Dark mode
      • New get Theme_Dark
      • New get Theme_Light
      • New Designer Property ThemeChangeTransition
        • Default: None
      • New Designer Property CurrentDateTextColor
        • Default: Black
      • Change Designer Property CurrentDateColor default value to WHITE
    • CalendarView
      • Removed "HeaderColor", is now in the ASScheduler_CalendarView_HeaderProperties type
      • Removed SetTheme
      • New set Theme - You can now switch to Light or Dark mode
      • New get Theme_Dark
      • New get Theme_Light
      • New Designer Property ThemeChangeTransition
        • Default: None
Have Fun :)
 

Attachments

  • AS Scheuler Example.zip
    207.6 KB · Views: 0
  • ASScheduler.zip
    65.4 KB · Views: 0
Last edited:

DBernaert

Member
Licensed User
Hi,

Thx for the feedback.
I can indeed change the background, ...
But i can't find how to change the color of the labels for the months, days, ... (see attachment).
Could you please let me know how this can be done?

1698227093395.jpeg
 

DBernaert

Member
Licensed User
I'm also having a problem porting the code from B4A to B4I.
I created the forms in B4I just like in B4A and added the code that is specific for B4I (B4XPage_Resize)
When running the application it crashes, this is the error stack:

1698231378811.png


Any idea what would cause this?

Thank you.
 

Alexander Stolte

Expert
Licensed User
Longtime User
Update
  • 3.08
    • AgendaView
      • Theming BugFixes
      • Add SetTheme - You now have all the colors for the view in one function
      • Add 2 Examples for SetTheme
        • Theme_Dark
        • Theme_Light
      • Add get isCreated - Returns true after you call CreateScheduler
SetTheme
B4X:
Private Sub Theme_Dark
    
    Dim Theme As ASScheduler_AgendaView_Theme
    Theme.Initialize
    Theme.BackgroundColor_Body = xui.Color_ARGB(255,32, 33, 37)
    Theme.BackgroundColor_Week = xui.Color_ARGB(255,32, 33, 37)
    Theme.BackgroundColor_Month = xui.Color_ARGB(255,19, 20, 22)
    Theme.BackgroundColor_CurrentDate = xui.Color_ARGB(255,45, 136, 121)
    Theme.BackgroundColor_EmptyState = xui.Color_ARGB(255,32, 33, 37)
    
    Theme.TextColor_Appointment = xui.Color_White
    Theme.TextColor_AppointmentDayOfMonth = xui.Color_White
    Theme.TextColor_AppointmentWeekDay = xui.Color_White
    Theme.TextColor_DayOfMonth = xui.Color_White
    Theme.TextColor_EmptyState = xui.Color_White
    Theme.TextColor_Month = xui.Color_White
    Theme.TextColor_Week = xui.Color_White
    
    ASScheduler_AgendaView1.SetTheme(Theme)
    If ASScheduler_AgendaView1.isCreated Then ASScheduler_AgendaView1.RefreshScheduler
    
End Sub

Private Sub Theme_Light
    
    Dim Theme As ASScheduler_AgendaView_Theme
    Theme.Initialize
    Theme.BackgroundColor_Body = xui.Color_White
    Theme.BackgroundColor_Week = xui.Color_White
    Theme.BackgroundColor_Month = xui.Color_ARGB(255,230, 230, 230)
    Theme.BackgroundColor_CurrentDate = xui.Color_ARGB(255,45, 136, 121)
    Theme.BackgroundColor_EmptyState = xui.Color_White
    
    Theme.TextColor_Appointment = xui.Color_White
    Theme.TextColor_AppointmentDayOfMonth = xui.Color_Black
    Theme.TextColor_AppointmentWeekDay = xui.Color_Black
    Theme.TextColor_DayOfMonth = xui.Color_Black
    Theme.TextColor_EmptyState = xui.Color_Black
    Theme.TextColor_Month = xui.Color_Black
    Theme.TextColor_Week = xui.Color_Black
    
    ASScheduler_AgendaView1.SetTheme(Theme)
    If ASScheduler_AgendaView1.isCreated Then ASScheduler_AgendaView1.RefreshScheduler
    
End Sub

I created the forms in B4I just like in B4A and added the code that is specific for B4I (B4XPage_Resize)
what code do you have in the resize event?
But i can't find how to change the color of the labels for the months, days, ... (see attachment).
Use the new SetTheme functions, Dark and Light examples are above.
 

DBernaert

Member
Licensed User
In the resize event i have the following code:
B4X:
If Width < Height Then
        AgendaView.mBase.SetLayoutAnimated(0,0,0,Width,Height)
    Else
        AgendaView.mBase.SetLayoutAnimated(0,B4XPages.GetNativeParent(Me).SafeAreaInsets.Left,0,Width - B4XPages.GetNativeParent(Me).SafeAreaInsets.Left,Height)
    End If
 

vfafou

Well-Known Member
Licensed User
Longtime User
Hello!
After updating the libraries AS Scheduler, ASViewPager and adding jPager, I have a problem when I try to run my app.
The problem is:

Error description: Unknown member: customlistview
Error occurred on line: 1275
Dim xpnl_background As B4XView = xASVP_Horizontal.CustomListView.GetPanel(i)
Word: customlistview

Additionally, Logs section refers the following:

B4X:
Syntax error.
'next' expected.
Unknown member: tag
Unknown member: getview
Unknown member: numberofviews
Unknown member: getview
Unknown member: numberofviews
Unknown member: customlistview

I can't understand which lib has this code and I don't want to unzip the b4xlib for ethical reasons!

May somebody (mainly Alex) could help?
 
Last edited:

Alexander Stolte

Expert
Licensed User
Longtime User
Error description: Unknown member: customlistview
Error occurred on line: 1275
Dim xpnl_background As B4XView = xASVP_Horizontal.CustomListView.GetPanel(i)
Word: customlistview
Are you sure you have replaced all libraries? Please look in the libraries manager and see if the online versions match. All libraries have been converted to the new AS_ViewPager version since the beginning of the year without any problems. Therefore it could only be a mistake when replacing it.
 

vfafou

Well-Known Member
Licensed User
Longtime User
Are you sure you have replaced all libraries? Please look in the libraries manager and see if the online versions match. All libraries have been converted to the new AS_ViewPager version since the beginning of the year without any problems. Therefore it could only be a mistake when replacing it.
It was a "forgotten" ASCalendarAdvanced! I replaced with ASScheduler_CalendarViewMonth and the error disappeared!
 

Alexander Stolte

Expert
Licensed User
Longtime User
ASCalendarAdvanced
 

MarcoRome

Expert
Licensed User
Longtime User
Hi dear @Alexander Stolte
If there are appointments every half hour
example
from 08.00 to 08.30
from 08.30 to 09.00
from 09.00 to 09.30
etc.
It happens that the text is formatted like this:

1699889465700.png



B4X:
Dim BeginTime As Long = DateUtils.SetDate(DateTime.GetYear(DateTime.Now),DateTime.GetMonth(DateTime.Now),DateTime.GetDayOfMonth(DateTime.Now)) + DateTime.TicksPerHour*8
        
        For i = 0 To 5
            
            
            Log(DateTime.Time(BeginTime))
            
            ASScheduler_DayView1.API.CreateAppointment(ASSchedulerUtils.CreateASScheduler_Appointment(0,$"Test ${i}"$,"Description",xui.Color_ARGB(255,45, 136, 121),False,BeginTime,BeginTime + DateTime.TicksPerMinute * 30))
            
            BeginTime = BeginTime + DateTime.TicksPerMinute * 30
            
            
        Next
    
        ASScheduler_DayView1.RefreshScheduler

if instead a one minute gap is followed by this instruction

B4X:
 BeginTime = BeginTime + DateTime.TicksPerMinute * 31



Any solution ?
In attachment example
 

Attachments

  • Project.zip
    184.3 KB · Views: 140

MarcoRome

Expert
Licensed User
Longtime User
Hi dear @Alexander Stolte, All.

B4X:
ASSchedulerUtils.API.DeleteBlackout(id)

I should remove a blackout.
First question:
It asks me for ID. How can I get the ID?

Next question:
When I click on blackout the event ASScheduler_DayView1_TimeBlockClick does not fire.
Why ?

Thank you
 

Alexander Stolte

Expert
Licensed User
Longtime User
When I click on blackout the event ASScheduler_DayView1_TimeBlockClick does not fire.
Why ?
Because thats the sense of a blackout day?
The day is then blocked.
I should remove a blackout.
First question:
It asks me for ID. How can I get the ID?
there is no function for this yet, I would have to add it first. But the next update will take some time.
 

MarcoRome

Expert
Licensed User
Longtime User
Because thats the sense of a blackout day?
The day is then blocked.

For example, in my specific case I choose which days are not available.
The user may have made a mistake and may want to go back.
This is why we needed to be able to activate/deactivate it.
 

MarcoRome

Expert
Licensed User
Longtime User
Is there a way to block all Saturdays and Sundays, so they can't enter any appointments ?
 

Alexander Stolte

Expert
Licensed User
Longtime User
For example, in my specific case I choose which days are not available.
The user may have made a mistake and may want to go back.
This is why we needed to be able to activate/deactivate it.
Then please wait for the delete function.
Is there a way to block all Saturdays and Sundays, so they can't enter any appointments ?
Simply check in the click event whether the day is a Saturday or Sunday.
or
Use the WorkingHour feature
 

Alexander Stolte

Expert
Licensed User
Longtime User
Today's update has major performance improvements that were long overdue.

Although I have tested everything as well as possible, errors may have crept in, so please test before you publish your apps with the latest update.
Thanks

AS_ViewPager V2.02+ is needed for this update

Update
  • 3.11
    • CalendarView
      • BugFixes
      • Performance Improvements
    • DayView
      • BugFixes
      • Performance Improvements
    • MonthView
      • BugFixes
      • Performance Improvements
    • AgendaView
      • BugFixes
      • Performance Improvements
    • API
      • Add DeleteBlackoutOnDate
      • Add GetBlackoutIdFromDate
Performance Improvements
The lists in the scheduler views are now only 20-60 items long and accordingly they now use much less RAM and load much faster. When the user scrolls or swipes, the list is expanded in the background, so the list only gets longer when needed.

Especially the interaction of several scheduler views on only one page benefits greatly from the improvements.

BugFixes
while i have improved the performance, i have noticed minor bugs in all views that have been fixed.
 
Top