Defining Input Shape for Time Series using LSTM in Keras
An LSTM will expect the data to be of the format (samples, time steps, features).  In a univariate case where we will focus on just the time series with the sales data, where you say five lags are required as input:

sales data = [100, 150, 345, 5, 800, 655, 100, 200, 300, 400]


You could format your data like this using a sliding window of step size one:

[100, 150, 345, 5, 800]
[150, 345, 5, 800, 655]
[345, 5, 800, 655, 100]
[5, 800, 655, 100, 200]
[800, 655, 100, 200, 300]
[655, 100, 200, 300, 400]


this would give you six samples each of five time steps and one feature (the feature being the sales data).

So the shape you would take the 2d array above and reshape it to a 3D array of (samples, time steps, features) which you could also think about like (rows, columns, features), giving (6, 5, 1).

Let's say now you have another feature holidays like in your example, in this case you have two features, the sales data and whether or not it's a holiday or not.  So you would need dimensions of (6, 5, 2), six samples each containing five time steps of data each with two series each (or features).