

| Type | Description | |||
| Date as Variant | A DATE expression that specifies the date/day to be queried for events | |||
| Variant | A Safe array of Event objects being shown in the specified date. | 
The following sample shows how you can enumerate the events within the selected date, once the LayoutEndChanging(exCalendarSelectionChange) event occurs.
VB
Private Sub Schedule1_LayoutEndChanging(ByVal Operation As EXSCHEDULELibCtl.LayoutChangingEnum)
    If Operation = exCalendarSelectionChange Then
        Dim d As Variant
        If (Schedule1.Calendar.SelCount = 1) Then
            For Each d In Schedule1.DateEvents(Schedule1.Calendar.SelDate(0))
                Debug.Print "Event: " & d.Start & " " & d.End
            Next
        End If
    End If
End Sub
  VB/NET
Private Sub Exschedule1_LayoutEndChanging(ByVal sender As System.Object, ByVal Operation As exontrol.EXSCHEDULELib.LayoutChangingEnum) Handles Exschedule1.LayoutEndChanging
    If Operation = exontrol.EXSCHEDULELib.LayoutChangingEnum.exCalendarSelectionChange Then
        If (Exschedule1.Calendar.SelCount > 0) Then
            Dim evs As List(Of exontrol.EXSCHEDULELib.Event) = Exschedule1.get_DateEvents(Exschedule1.Calendar.get_SelDate(0))
            If Not evs Is Nothing Then
                For Each d As exontrol.EXSCHEDULELib.Event In evs
                    Debug.Print("Event: " & d.Start & " " & d.End)
                Next
            End If
        End If
    End If
End Sub
  or:
Private Sub Exschedule1_LayoutEndChanging(ByVal sender As System.Object, ByVal Operation As exontrol.EXSCHEDULELib.LayoutChangingEnum) Handles Exschedule1.LayoutEndChanging
    If Operation = exontrol.EXSCHEDULELib.LayoutChangingEnum.exCalendarSelectionChange Then
        If (Exschedule1.Calendar.SelCount > 0) Then
            Dim evs As List(Of exontrol.EXSCHEDULELib.Event) = Exschedule1.get_DateEvents(Exschedule1.Calendar.get_SelDate(0))
            If Not evs Is Nothing Then
                For Each d As exontrol.EXSCHEDULELib.Event In evs
                    Debug.Print("Event: " & d.Start & " " & d.End)
                Next
            End If
        End If
    End If
End Sub
  C#
private void exschedule1_LayoutEndChanging(object sender, exontrol.EXSCHEDULELib.LayoutChangingEnum Operation)
{
    if ( Operation == exontrol.EXSCHEDULELib.LayoutChangingEnum.exCalendarSelectionChange  )
        if ( exschedule1.Calendar.SelCount == 1 )
        {
            List<exontrol.EXSCHEDULELib.Event> evs = exschedule1.get_DateEvents(exschedule1.Calendar.get_SelDate(0));
            if ( evs != null )
                foreach (exontrol.EXSCHEDULELib.Event d in evs)
                    System.Diagnostics.Debug.Print("Event: " + d.Start.ToString() + " " + d.Start.ToString());
        }
}
  VFP
*** ActiveX Control Event ***
LPARAMETERS operation
*	1 ' exCalendarSelectionChange
    If Operation = 1 Then
    	IF ( thisform.Schedule1.Calendar.SelCount = 1 ) Then
			local e, evs as Object
			
			thisform.Schedule1.TemplateDef = "dim d"
			thisform.Schedule1.TemplateDef = thisform.Schedule1.Calendar.SelDate(0)
			evs = thisform.Schedule1.ExecuteTemplate("DateEvents(d)")
			For Each e In evs
				LOCAL ee as Object
				ee = thisform.Schedule1.Events(e)
				WAIT WINDOW TTOC(ee.Start) + " " + TTOC(ee.End)
			ENDFOR
		ENDif
    EndIf
  C++
void LayoutEndChangingSchedule1(long Operation)
{
	if ( Operation == EXSCHEDULELib::exCalendarSelectionChange )
		if ( m_spSchedule->Calendar->SelCount == 1 )
		{
			_variant_t evs;
			if ( SUCCEEDED( m_spSchedule->get_DateEvents( _variant_t( m_spSchedule->Calendar->SelDate[0], VT_DATE ), &evs ) ) )
				if ( V_VT( &evs ) == ( VT_ARRAY | VT_VARIANT ) )
				{
					BYTE* p = NULL;
					long nCount = 0;
					if ( SUCCEEDED( SafeArrayGetUBound( V_ARRAY( &evs ), 1, &nCount ) ) )
					{
						if ( SUCCEEDED( SafeArrayAccessData( V_ARRAY( &evs ), (LPVOID*)&p ) ) )
						{
							for ( long i = 0; i < nCount + 1; i++, p += sizeof(VARIANT) )
							{
								VARIANT* pValue = (VARIANT*)p;
								if ( V_VT( pValue ) == VT_DISPATCH )
								{
									EXSCHEDULELib::IEventPtr spEvent = V_DISPATCH( pValue );
									CString strMessage;
									strMessage.Format( _T("Event: %f %f\r\n"), spEvent->Start, spEvent->End );
									OutputDebugString( strMessage );
								}
							}
							SafeArrayUnaccessData( V_ARRAY( &evs ) );
						}
					}
				}
		}
}
  where m_spSchedule is of EXSCHEDULELib::ISchedulePtr type.