diff --git a/Website/modules/NotificationConnectorFunctions.tsx b/Website/modules/NotificationConnectorFunctions.tsx
index d4c6748..9d0a49b 100644
--- a/Website/modules/NotificationConnectorFunctions.tsx
+++ b/Website/modules/NotificationConnectorFunctions.tsx
@@ -3,6 +3,7 @@ import {deleteData, getData, putData} from "../App";
 import IGotifyRecord from "./interfaces/records/IGotifyRecord";
 import INtfyRecord from "./interfaces/records/INtfyRecord";
 import ILunaseaRecord from "./interfaces/records/ILunaseaRecord";
+import IPushoverRecord from "./interfaces/records/IPushoverRecord";
 
 export default class NotificationConnectorFunctions {
 
@@ -83,7 +84,7 @@ export default class NotificationConnectorFunctions {
 
     static async CreateLunasea(apiUri: string, lunasea: ILunaseaRecord) : Promise<string> {
         if(lunasea === undefined || lunasea === null) {
-            console.error(`ntfy was not provided`);
+            console.error(`lunasea was not provided`);
             return Promise.reject();
         }
         //console.info("Getting Notification Connectors");
@@ -95,4 +96,19 @@ export default class NotificationConnectorFunctions {
                 return (ret);
             });
     }
+
+    static async CreatePushover(apiUri: string, pushover: IPushoverRecord) : Promise<string> {
+        if(pushover === undefined || pushover === null) {
+            console.error(`pushover was not provided`);
+            return Promise.reject();
+        }
+        //console.info("Getting Notification Connectors");
+        return putData(`${apiUri}/v2/NotificationConnector/Pushover`, pushover)
+            .then((json) => {
+                //console.info("Got Notification Connectors");
+                const ret = json as unknown as string;
+                //console.debug(ret);
+                return (ret);
+            });
+    }
 }
\ No newline at end of file
diff --git a/Website/modules/interfaces/INotificationConnector.tsx b/Website/modules/interfaces/INotificationConnector.tsx
index 4f9854a..bad1794 100644
--- a/Website/modules/interfaces/INotificationConnector.tsx
+++ b/Website/modules/interfaces/INotificationConnector.tsx
@@ -5,6 +5,7 @@ import NotificationConnectorFunctions from "../NotificationConnectorFunctions";
 import {LunaseaItem} from "./records/ILunaseaRecord";
 import {GotifyItem} from "./records/IGotifyRecord";
 import {NtfyItem} from "./records/INtfyRecord";
+import {PushoverItem} from "./records/IPushoverRecord";
 
 export default interface INotificationConnector {
     name: string;
@@ -29,12 +30,14 @@ export function NotificationConnectorItem({apiUri, notificationConnector} : {api
                 case "gotify": setSelectedConnectorElement(<GotifyItem apiUri={apiUri} />); break;
                 case "ntfy": setSelectedConnectorElement(<NtfyItem apiUri={apiUri} />); break;
                 case "lunasea": setSelectedConnectorElement(<LunaseaItem apiUri={apiUri} />); break;
+                case "pushover": setSelectedConnectorElement(<PushoverItem apiUri={apiUri} />); break;
             }
         }}>
             <option value="default">Generic REST</option>
             <option value="gotify">Gotify</option>
             <option value="ntfy">Ntfy</option>
             <option value="lunasea">Lunasea</option>
+            <option value="pushover">Pushover</option>
         </select>
         {selectedConnectorElement}
     </div>;
diff --git a/Website/modules/interfaces/records/IPushoverRecord.tsx b/Website/modules/interfaces/records/IPushoverRecord.tsx
new file mode 100644
index 0000000..32816b9
--- /dev/null
+++ b/Website/modules/interfaces/records/IPushoverRecord.tsx
@@ -0,0 +1,43 @@
+import {ReactElement, useState} from "react";
+import NotificationConnectorFunctions from "../../NotificationConnectorFunctions";
+import Loader from "../../Loader";
+import "../../../styles/notificationConnector.css";
+import {isValidUri} from "../../../App";
+
+export default interface IPushoverRecord {
+    apptoken: string;
+    user: string;
+}
+
+function Validate(record: IPushoverRecord) : boolean {
+    if(record.apptoken.length < 1)
+        return false;
+    if(record.user.length < 1)
+        return false;
+    return true;
+}
+
+export function PushoverItem ({apiUri} : {apiUri: string}) : ReactElement{
+    const [info, setInfo] = useState<IPushoverRecord>({
+        apptoken: "",
+        user: ""
+    });
+    const [loading, setLoading] = useState(false);
+    return <div className="NotificationConnectorItem">
+        <input className="NotificationConnectorItem-Name" value="Pushover" disabled={true} />
+        <div className="NotificationConnectorItem-Ident">
+            <input type="text" className="NotificationConnectorItem-Apptoken" placeholder="Apptoken" onChange={(e) => setInfo({...info, apptoken: e.currentTarget.value})} />
+            <input type="text" className="NotificationConnectorItem-User" placeholder="User" onChange={(e) => setInfo({...info, user: e.currentTarget.value})} />
+        </div>
+        <>
+            <button className="NotificationConnectorItem-Save" onClick={(e) => {
+                if(info === null || Validate(info) === false)
+                    return;
+                setLoading(true);
+                NotificationConnectorFunctions.CreatePushover(apiUri, info)
+                    .finally(() => setLoading(false));
+            }}>Add</button>
+            <Loader loading={loading} style={{width:"40px",height:"40px",margin:"25vh calc(sin(70)*(50% - 40px))"}}/>
+        </>
+    </div>;
+}
\ No newline at end of file