Hi Kibock,
Refer below sample code.
HTML
<div id="calendar"></div>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<link href="css/bootstrap-year-calendar.min.css" rel="stylesheet" />
<script src="js/bootstrap-year-calendar.js"></script>
<script>
    $(function () {
        function ConvertJsonDateToDateTime(date) {
            var parsedDate = new Date(parseInt(date.substr(6)));
            var newDate = new Date(parsedDate);
            return newDate;
        }
        $.ajax({
            type: "POST",
            url: "Default.aspx/GetDetails",
            data: {},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                for (var i = 0; i < r.d.length; i++) {
                    r.d[i].startDate = ConvertJsonDateToDateTime(r.d[i].startDate);
                    r.d[i].endDate = ConvertJsonDateToDateTime(r.d[i].endDate);
                }
                $('#calendar').calendar({
                    enableContextMenu: true,
                    enableRangeSelection: true,
                    contextMenuItems: [
                        {
                            text: 'Update',
                            click: editEvent
                        },
                        {
                            text: 'Delete',
                            click: deleteEvent
                        }
                    ],
                    selectRange: function (e) {
                    },
                    mouseOnDay: function (e) {
                        if (e.events.length > 0) {
                            var content = '';
                            for (var i in e.events) {
                                content += '<div class="event-tooltip-content">'
                                    + '<div class="event-name" style="color:' + e.events[i].color + '">' + e.events[i].name + '</div>'
                                    + '<div class="event-location">' + e.events[i].location + '</div>'
                                    + '</div>';
                            }
                            $(e.element).popover({
                                trigger: 'manual',
                                container: 'body',
                                html: true,
                                content: content
                            });
                            $(e.element).popover('show');
                        }
                    },
                    mouseOutDay: function (e) {
                        if (e.events.length > 0) {
                            $(e.element).popover('hide');
                        }
                    },
                    dayContextMenu: function (e) {
                        $(e.element).popover('hide');
                    },
                    dataSource: r.d
                });
            }
        });
        function editEvent(event) {
            $('#event-modal input[name="event-index"]').val(event ? event.id : '');
            $('#event-modal input[name="event-name"]').val(event ? event.name : '');
            $('#event-modal input[name="event-location"]').val(event ? event.location : '');
            $('#event-modal input[name="event-start-date"]').datepicker('update', event ? event.startDate : '');
            $('#event-modal input[name="event-end-date"]').datepicker('update', event ? event.endDate : '');
            $('#event-modal').modal();
        }
        function deleteEvent(event) {
            var dataSource = $('#calendar').data('calendar').getDataSource();
            for (var i in dataSource) {
                if (dataSource[i].id == event.id) {
                    dataSource.splice(i, 1);
                    break;
                }
            }
            $('#calendar').data('calendar').setDataSource(dataSource);
        }
    });
</script>
Namespaces
C#
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Services
VB.Net
Imports System.Collections.Generic
Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Web.Services
Code
C#
[WebMethod]
public static List<Event> GetDetails()
{
    List<Event> events = new List<Event>();
    string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    string query = "SELECT * FROM Events";
    SqlCommand cmd = new SqlCommand(query);
    using (SqlConnection con = new SqlConnection(conString))
    {
        cmd.Connection = con;
        con.Open();
        using (SqlDataReader sdr = cmd.ExecuteReader())
        {
            while (sdr.Read())
            {
                events.Add(new Event
                {
                    id = Convert.ToInt32(sdr["Id"]),
                    name = sdr["Name"].ToString(),
                    location = sdr["Location"].ToString(),
                    startDate = Convert.ToDateTime(sdr["StartDate"]),
                    endDate = Convert.ToDateTime(sdr["EndDate"]),
                });
            }
        }
        con.Close();
    }
    return events;
}
public class Event
{
    public int id { get; set; }
    public string name { get; set; }
    public string location { get; set; }
    public DateTime startDate { get; set; }
    public DateTime endDate { get; set; }
}
VB.Net
<WebMethod>
Public Shared Function GetDetails() As List(Of [Event])
    Dim events As List(Of [Event]) = New List(Of [Event])()
    Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Dim query As String = "SELECT * FROM Events"
    Dim cmd As SqlCommand = New SqlCommand(query)
    Using con As SqlConnection = New SqlConnection(conString)
        cmd.Connection = con
        con.Open()
        Using sdr As SqlDataReader = cmd.ExecuteReader()
            While sdr.Read()
                events.Add(New [Event] With {
                    .id = Convert.ToInt32(sdr("Id")),
                    .name = sdr("Name").ToString(),
                    .location = sdr("Location").ToString(),
                    .startDate = Convert.ToDateTime(sdr("StartDate")),
                    .endDate = Convert.ToDateTime(sdr("EndDate"))
                })
            End While
        End Using
        con.Close()
    End Using
    Return events
End Function
Public Class [Event]
    Public Property id As Integer
    Public Property name As String
    Public Property location As String
    Public Property startDate As DateTime
    Public Property endDate As DateTime
End Class