# Type of request: This is a ...

[X ] bug report
[ ] feature request

# Detailed description
Calling PutEvents operation returns 500 if no `Detail` is specified. This case is similar to #3043

## Expected behavior
According to the doc https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEventsRequestEntry.html `Details` is optional. 

```
 Detail
    A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects.
    Type: String
    Required: No
```

So this should works and set `Detail` as `{}`

```
eb_client = boto3.client('events', endpoint_url='http://localhost:4587')
eb_client.put_events(
    Entries=[
        {
            'DetailType': 'Test'
        }
    ]
)
```

## Actual behavior
500 is returned

# Steps to reproduce

1. Start LocalStack with SERVICES=events
2. Run the client code

## Command used to start LocalStack

```
docker run --rm --name localstack -p 4587:4587 -e SERVICES=events -e DEBUG=true localstack/localstack
```

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)

CLI:

```
aws events put-events --endpoint-url http://localhost:4587 --entries '[{"DetailType": "Test"}]'
```

Or via python:

```
eb_client = boto3.client('events', endpoint_url='http://localhost:4587')
eb_client.put_events(
    Entries=[
        {
            'DetailType': 'Test',
            'Detail': '{}'
        }
    ]
)
```

import re
import datetime
import json
import uuid
import logging
import ipaddress
from moto.events.models import Rule as rule_model
from moto.events.responses import EventsHandler as events_handler
from localstack import config
from localstack.constants import APPLICATION_AMZ_JSON_1_1, TEST_AWS_ACCOUNT_ID
from localstack.utils.aws import aws_stack
from localstack.utils.common import short_uid, extract_jsonpath
from localstack.services.infra import start_moto_server
from localstack.services.events.scheduler import JobScheduler
from localstack.services.events.events_listener import _create_and_register_temp_dir, _dump_events_to_files
LOG = logging.getLogger(__name__)
DEFAULT_EVENT_BUS_NAME = 'default'
EVENT_RULES = {
    DEFAULT_EVENT_BUS_NAME: set()
}
CONTENT_BASE_FILTER_KEYWORDS = [
    'prefix', 'anything-but', 'numeric', 'cidr', 'exists'
]
def filter_event_with_target_input_path(target, event):
    input_path = target.get('InputPath')
    if input_path:
        event = extract_jsonpath(event, input_path)
    return event
def filter_event_based_on_event_format(self, rule, event):
    def filter_event(event_pattern, event):