diff --git a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
index ef0dc3f19c46b850158a05259394e69b6c39fc3d..dc67027c5a1aa2a880be0f6ea546ac233182725c 100644
--- a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
+++ b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
@@ -13,6 +13,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="System.ComponentModel" Version="4.3.0" />
     <PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
   </ItemGroup>
 
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Events/BeckmanCalendars.cs b/BeckmanComms.Api.DataTransferObjects/V2/Events/BeckmanCalendars.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7171e58fe01997d2322121893c27529b0d689ac2
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Events/BeckmanCalendars.cs
@@ -0,0 +1,40 @@
+using System.ComponentModel;
+
+namespace BeckmanComms.Api.DataTransferObjects.V2.Events
+{
+    /// <summary>
+    /// Names and calendar IDs of Beckman Institute event calendars.
+    /// </summary>
+    public enum BeckmanCalendars
+    {
+        /// <summary>
+        /// Main Beckman Institute calendar.
+        /// </summary>
+        [Description("The main Beckman Institute event calendar.")]
+        BeckmanInstitute = 4595,
+
+        /// <summary>
+        /// CNL calendar.
+        /// </summary>
+        [Description("Calendar for the Cognitive Neuroimaging Laboratory (CNL) at the Beckman Institute.")]
+        CnlEvents = 4521,
+
+        /// <summary>
+        /// ILLI calendar.
+        /// </summary>
+        [Description("Calendar for the Illinois Language and Literacy Initiative (ILLI) at the Beckman Institute.")]
+        IlliEvents = 5511,
+
+        /// <summary>
+        /// LBC calendar.
+        /// </summary>
+        [Description("Calendar for the Lifelong Brain and Cognition Laboratory (LBC) at the Beckman Institute.")]
+        LbcLab = 4669,
+
+        /// <summary>
+        /// MSL calendar.
+        /// </summary>
+        [Description("Calendar for the Memory Systems Lab (MSL) at the Beckman Institute.")]
+        MslEvents = 4470
+    }
+}
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Events/CalendarDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Events/CalendarDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c930f8eb5de0f0c3d97cd29f8269a98156f929e2
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Events/CalendarDto.cs
@@ -0,0 +1,23 @@
+namespace BeckmanComms.Api.DataTransferObjects.V2.Events
+{
+    /// <summary>
+    /// Information describing a webtools calendar.
+    /// </summary>
+    public class CalendarDto
+    {
+        /// <summary>
+        /// Calendar Name.
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// Webtools calendar ID.
+        /// </summary>
+        public int CalendarId { get; set; }
+
+        /// <summary>
+        /// Human-readable description of calendar's purpose.
+        /// </summary>
+        public string Description { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Events/EventDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Events/EventDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a5b93bdd85331dd4ed65f386ffeb938f7354a009
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Events/EventDto.cs
@@ -0,0 +1,75 @@
+using System;
+
+namespace BeckmanComms.Api.DataTransferObjects.V2.Events
+{
+    /// <summary>
+    /// Data Transfer Object representing a Beckman Institute event.
+    /// </summary>
+    public class EventDto
+    {
+        /// <summary>
+        /// Event's unique identifier.
+        /// </summary>
+        public int EventId { get; set; }
+
+        /// <summary>
+        /// ID for calendar containing event.
+        /// </summary>
+        public string CalendarId { get; set; }
+
+        /// <summary>
+        /// Event title.
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// Event description.
+        /// </summary>
+        public string Description { get; set; }
+
+        /// <summary>
+        /// Starting date and time of event.
+        /// </summary>
+        public DateTime StartDate { get; set; }
+
+        /// <summary>
+        /// Ending date and time of event.
+        /// </summary>
+        public DateTime EndDate { get; set; }
+
+        /// <summary>
+        /// Event location.
+        /// </summary>
+        public string Location { get; set; }
+
+        /// <summary>
+        /// Name of event's primary contact.
+        /// </summary>
+        public string ContactName { get; set; }
+
+        /// <summary>
+        /// Event contact's email address.
+        /// </summary>
+        public string ContactEmail { get; set; }
+
+        /// <summary>
+        /// Event contact's phone number.
+        /// </summary>
+        public string ContactPhone { get; set; }
+
+        /// <summary>
+        /// Event sponsor.
+        /// </summary>
+        public string Sponsor { get; set; }
+
+        /// <summary>
+        /// Type of event.
+        /// </summary>
+        public string EventType { get; set; }
+
+        /// <summary>
+        /// Whether event is recurring.
+        /// </summary>
+        public bool Recurring { get; set; }
+    }
+}
\ No newline at end of file