diff --git a/lib/federation/activity_stream/converter/event.ex b/lib/federation/activity_stream/converter/event.ex
index d2e932358..bd7dace4e 100644
--- a/lib/federation/activity_stream/converter/event.ex
+++ b/lib/federation/activity_stream/converter/event.ex
@@ -14,6 +14,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
   alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
   alias Mobilizon.Federation.ActivityStream.Converter.Address, as: AddressConverter
   alias Mobilizon.Federation.ActivityStream.Converter.Media, as: MediaConverter
+  alias Mobilizon.Web.Endpoint
 
   import Mobilizon.Federation.ActivityStream.Converter.Utils,
     only: [
@@ -43,7 +44,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
   @impl Converter
   @spec as_to_model_data(map) :: {:ok, map()} | {:error, any()}
   def as_to_model_data(object) do
-    with {%Actor{id: actor_id, domain: actor_domain}, attributed_to} <-
+    with {%Actor{id: actor_id}, attributed_to} <-
            maybe_fetch_actor_and_attributed_to_id(object),
          {:address, address_id} <-
            {:address, get_address(object["location"])},
@@ -65,7 +66,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
         category: object["category"],
         visibility: visibility,
         join_options: Map.get(object, "joinMode", "free"),
-        local: is_nil(actor_domain),
+        local: is_local(object["id"]),
         options: options,
         status: object |> Map.get("ical:status", "CONFIRMED") |> String.downcase(),
         online_address: object |> Map.get("attachment", []) |> get_online_address(),
@@ -274,4 +275,10 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
       &(&1 ++ medias)
     )
   end
+
+  defp is_local(url) do
+    %URI{host: url_domain} = URI.parse(url)
+    %URI{host: local_domain} = URI.parse(Endpoint.url())
+    url_domain == local_domain
+  end
 end